Information providing system, information providing apparatus, information providing method, information processing apparatus, information processing method, and program

ABSTRACT

Disclosed is an information providing system in which the information providing apparatus first receives a connection request from the first information processing apparatus. Upon receipt of the connection request, a check is made to see whether the information providing apparatus is providing any image data or sound data to the second information processing apparatus. If the information providing apparatus is judged to be providing any image data or sound data to the second information processing apparatus, then information related to a chat program is transmitted to the first and the second information processing apparatus. After transmitting the connection request to the information providing apparatus, the first information processing apparatus receives the information related to the chat program from the information providing apparatus. Upon reception of the information, the first information processing apparatus executes a process based on the received information related to the chat program. The second information processing apparatus also receives the information related to the chat program from the information providing apparatus and thereupon executes a process based on the received information related to the chat program.

BACKGROUND OF THE INVENTION

[0001] The present invention relates to an information providing system,an information providing apparatus, an information providing method, aninformation processing apparatus, an information processing method, anda program. More particularly, the invention relates to an informationproviding system, an information providing apparatus, an informationproviding method, an information processing apparatus, an informationprocessing method, and a program suitable for handling image data orsound data.

[0002] In widespread use today are client-server systems each comprisinga server that provides its clients with image data or sound data via anetwork. Each client receives the image data or sound data coming fromthe server over the network so as to display images and to output soundsreflecting the received data.

[0003] One disadvantage of these client-server systems is this: that ifany one of the users of a plurality of clients connected with the sameserver wants to communicate with any other user, each user must boot achat program individually to see whether the other client has logged on.The procedure involved can be a troublesome, time-consuming chore.

SUMMARY OF THE INVENTION

[0004] The present invention has been made in view of the abovecircumstances and provides an information providing system, aninformation providing apparatus, an information providing method, aninformation processing apparatus, an information processing method, anda program, whereby users of multiple clients connected to the sameserver acting as an information providing apparatus are able tocommunicate their intentions and feelings with one another in an easyand rapid manner.

[0005] In carrying out the invention and according to a first aspectthereof, there is provided an information providing system constitutedof an information providing apparatus for providing image data and sounddata over a network and of a first and a second information processingapparatus for displaying images and outputting sounds based on theprovided image data and sound data; wherein the information providingapparatus comprises: first reception controlling element for controllingreception of a connection request from the first information processingapparatus; judging element which, upon receipt of the connectionrequest, judges whether the information providing apparatus is providingany of the image data and sound data to the second informationprocessing apparatus; and first transmission controlling element which,if the information providing apparatus is judged to be providing any ofthe image data and sound data to the second information processingapparatus, then controls transmission of information related to a chatprogram to the first and the second information processing apparatus;wherein the first information processing apparatus comprises: secondtransmission controlling element for controlling transmission of theconnection request to the information providing apparatus; secondreception controlling element for controlling reception of theinformation related to the chat program from the information providingapparatus; and first executing element which, upon reception of theinformation related to the chat program, executes a process based on thereceived information related to the chat program; and wherein the secondinformation processing apparatus comprises: third reception controllingelement for controlling reception of the information related to the chatprogram from the information providing apparatus; and second executingelement which, upon receipt of the information related to the chatprogram, executes a process based on the received information related tothe chat program.

[0006] With this configuration, where the information providing systemis in use, the information providing apparatus first receives aconnection request from the first information processing apparatus. Uponreceipt of the connection request, a check is made to see whether theinformation providing apparatus is providing any image data or sounddata to the second information processing apparatus. If the informationproviding apparatus is judged to be providing any image data or sounddata to the second information processing apparatus, then informationrelated to a chat program is transmitted to the first and the secondinformation processing apparatus. After transmitting the connectionrequest to the information providing apparatus, the first informationprocessing apparatus receives the information related to the chatprogram from the information providing apparatus. Upon reception of theinformation, the first information processing apparatus executes aprocess based on the received information related to the chat program.The second information processing apparatus also receives theinformation related to the chat program from the information providingapparatus and thereupon executes a process based on the receivedinformation related to the chat program. The inventive system thusallows users of the first and the second information processingapparatus to communicate their intentions or feelings with one anothereasily and rapidly.

[0007] According to a second aspect of the invention, there is providedan information providing apparatus for providing image data and sounddata over a network to a first and a second information processingapparatus displaying images and outputting sounds based on the providedimage data and sound data, the information providing apparatuscomprising: reception controlling element for controlling reception of aconnection request from the first information processing apparatus;judging element which, upon receipt of the connection request, judgeswhether the information providing apparatus is providing any of theimage data and sound data to the second information processingapparatus; and first transmission controlling element which, if theinformation providing apparatus is judged to be providing any of theimage data and sound data to the second information processingapparatus, then controls transmission of information related to a chatprogram to the first and the second information processing apparatus.

[0008] According to a third aspect of the invention, there is providedan information providing method for use with an information providingapparatus for providing image data and sound data over a network to afirst and a second information processing apparatus displaying imagesand outputting sounds based on the provided image data and sound data,the information providing method comprising the steps of: controllingreception of a connection request from the first information processingapparatus; upon receipt of the connection request, judging whether theinformation providing apparatus is providing any of the image data andthe sound data to the second information processing apparatus; and ifthe information providing apparatus is judged to be providing any of theimage data and the sound data to the second information processingapparatus, then controlling transmission of information related to achat program to the first and the second information processingapparatus.

[0009] According to a fourth aspect of the invention, there is provideda program for use with a computer which controls an informationproviding apparatus for providing image data and sound data over anetwork to a first and a second information processing apparatusdisplaying images and outputting sounds based on the provided image dataand sound data, the program causing the computer to execute the stepsof: controlling reception of a connection request from the firstinformation processing apparatus; upon receipt of the connectionrequest, judging whether the information providing apparatus isproviding any of the image data and the sound data to the secondinformation processing apparatus; and if the information providingapparatus is judged to be providing any of the image data and the sounddata to the second information processing apparatus, then controllingtransmission of information related to a chat program to the first andthe second information processing apparatus.

[0010] With these configurations, where the information providingapparatus, information providing method, and program according to theinvention are in use, a connection request is first received from thefirst information processing apparatus connected to the informationproviding apparatus. Upon receipt of the connection request, a check ismade to see whether the information providing apparatus is providing anyimage data or sound data to the second information processing apparatusalso connected to the information providing apparatus. If theinformation providing apparatus is judged to be providing any image dataor sound data to the second information processing apparatus, theinformation providing apparatus transmits information related to a chatprogram to the first and the second information processing apparatus.This allows the users of the first and the second information processingapparatus to communicate their intentions or feelings easily andrapidly.

[0011] According to a fifth aspect of the invention, there is providedan information processing apparatus for displaying images and outputtingsounds based on image data and sound data provided by an informationproviding apparatus over a network, the information processing apparatuscomprising: reception controlling element for controlling reception ofinformation related to a chat program from the information providingapparatus; and executing element which, upon reception of theinformation related to the chat program, executes a process based on thereceived information related to the chat program.

[0012] According to a sixth aspect of the invention, there is providedan information processing method for use with an information processingapparatus for displaying images and outputting sounds based on imagedata and sound data provided by an information providing apparatus overa network, the information processing method comprising the step of:controlling reception of information related to a chat program from theinformation providing apparatus; and upon reception of the informationrelated to the chat program, executing a process based on the receivedinformation related to the chat program.

[0013] According to a seventh aspect of the invention, there is provideda program for use with a computer which controls an informationprocessing apparatus for displaying images and outputting sounds basedon image data and sound data provided by an information providingapparatus over a network, the program causing the computer to executethe step of: controlling reception of information related to a chatprogram from the information providing apparatus; and upon reception ofthe information related to the chat program, executing a process basedon the received information related to the chat program.

[0014] With these configurations, where the inventive informationprocessing apparatus, information processing method, and program are inuse, the information processing apparatus receives information relatedto a chat program from the information providing apparatus. Upon receiptof the information, the information processing apparatus executes aprocess based on the received information related to the chat program.This enables the user of the information processing apparatus tocommunicate his or her intentions or feelings with the user of anotherinformation processing apparatus easily and rapidly.

[0015] According to an eighth aspect of the invention, there is providedan information providing system constituted of an information providingapparatus and an information processing apparatus; wherein theinformation providing apparatus comprises: first reception controllingelement for controlling reception of a request from the informationprocessing apparatus for a version report regarding a program beingexecuted by the information providing apparatus; and first transmissioncontrolling element which, upon receipt of the version report request,controls transmission of version data denoting the version of theprogram to the information processing apparatus; and wherein theinformation processing apparatus comprises: second transmissioncontrolling element for controlling transmission of the version reportrequest to the information providing apparatus; recording controllingelement for controlling recording of function data representingcorrespondence between the version of the program and functions providedby the information providing apparatus; second reception controllingelement for controlling reception of the version data from theinformation providing apparatus; and determining element for determiningthe functions of the information providing apparatus based on thefunction data and the version data.

[0016] With this configuration, where the information providing systemis in use, the information providing apparatus receives a request fromthe information processing apparatus for a version report regarding aprogram being executed by the information providing apparatus. Uponreceipt of the version report request, the information providingapparatus transmits version data denoting the version of the program tothe information processing apparatus. After transmitting the versionreport request to the information providing apparatus, the informationprocessing apparatus designed to record function data representingcorrespondence between the version of the program and functions providedby the information providing apparatus receives the version data fromthe information providing apparatus, and determines the functions of theinformation providing apparatus based on the recorded function data andthe received version data. The inventive system allows the informationprocessing apparatus, before logging on to any information providingapparatus, to determine the functions made available from thatapparatus, whereby a suitable information providing apparatus offeringdesired functions can be selected.

[0017] According to a ninth aspect of the invention, there is providedan information providing apparatus for providing data to an informationprocessing apparatus, the information providing apparatus comprising:reception controlling element for controlling reception of a requestfrom the information processing apparatus for a version report regardinga program being executed by the information providing apparatus; andfirst transmission controlling element which, upon receipt of theversion report request, controls transmission of version data denotingthe version of the program to the information processing apparatus.

[0018] According to a tenth aspect of the invention, there is providedan information providing method for use with an information providingapparatus for providing data to an information processing apparatus, theinformation providing method comprising the steps of: controllingreception of a request from the information processing apparatus for aversion report regarding a program being executed by the informationproviding apparatus; and upon receipt of the version report request,controlling transmission of version data denoting the version of theprogram to the information processing apparatus.

[0019] According to an eleventh aspect of the invention, there isprovided a program for use with a computer which controls an informationproviding apparatus for providing data to an information processingapparatus, the program causing the computer to execute the steps of:controlling reception of a request from the information processingapparatus for a version report regarding the program; and upon receiptof the version report request, controlling transmission of version datadenoting the version of the program to the information processingapparatus.

[0020] With these configurations, where the information providingapparatus, information providing method, and program according to theinvention are in use, a program version report request is first receivedfrom the information processing apparatus connected to the informationproviding apparatus. Upon receipt of the version report request, theinformation providing apparatus transmits version data denoting theversion of the program being executed by the information providingapparatus. This allows the information processing apparatus, beforelogging on to any information providing apparatus, to determine thefunctions made available from that apparatus, whereby a suitableinformation providing apparatus offering desired functions can beselected.

[0021] According to a twelfth aspect of the invention, there is providedan information processing apparatus for processing data provided by aninformation providing apparatus, the information processing apparatuscomprising: transmission controlling element for controllingtransmission of a request to the information providing apparatus for aversion report regarding a program being executed by the informationproviding apparatus; recording controlling element for controllingrecording of function data representing correspondence between theversion of the program and functions provided by the informationproviding apparatus; first reception controlling element for controllingreception of version data from the information providing apparatus; anddetermining element for determining the functions of the informationproviding apparatus based on the function data and the version data.

[0022] According to a thirteenth aspect of the invention, there isprovided an information processing method for use with an informationprocessing apparatus for processing data provided by an informationproviding apparatus, the information processing method comprising thesteps of: controlling transmission of a request to the informationproviding apparatus for a version report regarding a program beingexecuted by the information providing apparatus; controlling recordingof function data representing correspondence between the version of theprogram and functions provided by the information providing apparatus;controlling reception of version data from the information providingapparatus; and determining the functions of the information providingapparatus based on the function data and the version data.

[0023] According to a fourteenth aspect of the invention, there isprovided a program for use with a computer which controls an informationprocessing apparatus for processing data provided by an informationproviding apparatus, the program causing the computer to execute thesteps of: controlling transmission of a request to the informationproviding apparatus for a version report regarding a program beingexecuted by the information providing apparatus; controlling recordingof function data representing correspondence between the version of theprogram and functions provided by the information providing apparatus;controlling reception of version data from the information providingapparatus; and determining the functions of the information providingapparatus based on the function data and the version data.

[0024] With these configurations, where the inventive informationprocessing apparatus, information processing method, and program are inuse, the information processing apparatus transmits a request to theinformation providing apparatus for a version report regarding theprogram being executed by that information providing apparatus. Theinformation processing apparatus designed to record function datarepresenting correspondence between the version of the program andfunctions provided by the information providing apparatus, receivesversion data indicative of the program version from the informationproviding apparatus, and determines the functions of the informationproviding apparatus based on the recorded function data and the receivedversion data. This allows the information processing apparatus, beforelogging on to any information providing apparatus, to determine thefunctions made available from that apparatus, whereby a suitableinformation providing apparatus offering desired functions can beselected.

[0025] The above and other objects, features and advantages of thepresent invention will become apparent from the following descriptionand the appended claims, taken in conjunction with the accompanyingdrawings in which like parts or elements denoted by like referencesymbols.

BRIEF DESCRIPTION OF THE DRAWINGS

[0026]FIG. 1 is a schematic view showing a structure of a contentproviding system as a first embodiment of this invention;

[0027]FIG. 2 is a block diagram depicting a structure of a server aspart of the first embodiment;

[0028]FIG. 3 is a block diagram illustrating a structure of an imageprocessing board as part of the server;

[0029]FIG. 4 is an explanatory view of application programs performed bythe server;

[0030]FIG. 5 is a block diagram indicating a structure of a personalcomputer as part of the first embodiment;

[0031]FIG. 6 is an explanatory view of application programs performed bythe personal computer;

[0032]FIG. 7 is a schematic view of a dialog box;

[0033]FIG. 8 is a schematic view of another dialog box;

[0034]FIG. 9 is a schematic view of a window displayed on a display unitof the personal computer by a client program;

[0035]FIG. 10 is a schematic view of another dialog box;

[0036]FIG. 11 is an explanatory view showing a process performed by theclient program to establish connection with the server;

[0037]FIG. 12 is another explanatory view depicting the processperformed by the client program to establish connection with the server;

[0038]FIG. 13 is a schematic view of another window displayed on thedisplay unit by the client program;

[0039]FIG. 14 is a flowchart of steps constituting a connection datastoring process;

[0040]FIG. 15 is a flowchart of steps constituting a connecting process;

[0041]FIG. 16 is an explanatory view of a process of booting a chatprogram;

[0042]FIG. 17 is another explanatory view of the process of booting thechat program;

[0043]FIG. 18 is another explanatory view of the process of booting thechat program;

[0044]FIG. 19 is another explanatory view of the process of booting thechat program;

[0045]FIG. 20 is another explanatory view of the process of booting thechat program;

[0046]FIG. 21 is another explanatory view of the process of booting thechat program;

[0047]FIG. 22 is a flowchart of steps constituting a chat programboot-up requesting process;

[0048]FIG. 23 is a flowchart of steps constituting an image serverprogram connecting process;

[0049]FIG. 24 is a tabular view listing priority data;

[0050]FIG. 25 is a flowchart of steps constituting a channel changingprocess;

[0051]FIG. 26 is a flowchart of steps constituting a priority changingprocess;

[0052]FIG. 27 is an explanatory view of a process of selecting a serverbased on a version-compliant function;

[0053]FIG. 28 is a tabular view listing function data;

[0054]FIG. 29 is a flowchart of steps constituting image datatransmitting and receiving processes;

[0055]FIG. 30 is a block diagram depicting a structure of the clientprogram;

[0056]FIG. 31 is an explanatory view illustrating detailed processing ofthe client program;

[0057]FIG. 32 is a flowchart of steps constituting a reproduction speedchanging process;

[0058]FIG. 33 is a block diagram indicating a structure of a contentproviding system as a second embodiment of this invention;

[0059]FIG. 34 is a block diagram representing a structure of a personalcomputer as part of the second embodiment;

[0060]FIG. 35 is a block diagram expressing a structure of an imageprocessing board as part of the personal computer;

[0061]FIG. 36 is an explanatory view of application programs performedby the personal computer;

[0062]FIG. 37 is a block diagram showing a structure of an APS signaldetection unit as part of the image processing board;

[0063]FIG. 38 is a flowchart of steps constituting an APS signaldetecting process;

[0064]FIG. 39 is a flowchart of steps constituting a judging process;

[0065]FIG. 40 is a flowchart of steps constituting another judgingprocess;

[0066]FIG. 41 is a schematic view of a window displayed on a displayunit of the personal computer by an unattended recording reservationprogram;

[0067]FIG. 42 is an explanatory view of a process of booting arecording/reproducing program;

[0068]FIG. 43 is a flowchart of steps constituting an unattendedrecording starting process;

[0069]FIG. 44 is an explanatory view of a process of displayinginformation;

[0070]FIG. 45 is another explanatory view of the process of displayinginformation;

[0071]FIG. 46 is another explanatory view of the process of displayinginformation;

[0072]FIG. 47 is a flowchart of steps constituting an informationdisplaying process;

[0073]FIG. 48 is an explanatory view of sessions;

[0074]FIG. 49 is an explanatory view of a group;

[0075]FIG. 50 is an explanatory view of a process of activating modules;

[0076]FIG. 51 is another explanatory view of the process of activatingmodules;

[0077]FIG. 52 is a schematic view of a dialog box;

[0078]FIG. 53 is another explanatory view of the process of activatingmodules;

[0079]FIG. 54 is a flowchart of steps constituting a module activatingprocess; and

[0080]FIG. 55 is a flowchart of steps constituting a module groupreporting process.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0081]FIG. 1 is a schematic view showing a structure of a contentproviding system as the first embodiment of this invention. A server 1-1acting as a content providing apparatus is connected via a network 3 topersonal computers 2-1 through 2-N acting as clients. In this setup, theserver provides the clients with contents made up of image datarepresenting moving or static images and of sound data such as musicdata. Other servers 1-2 through 1-M acting as content providingapparatuses are also connected via the network 3 to the personalcomputers 2-1 through 2-N acting as clients. Each of these servers alsoprovides the clients with contents including image data and sound data.

[0082] The servers 1-1 through 1-M each store contents such as imagedata and sound data. These servers are also designed to receivebroadcast programs constituted by images and sounds or by sounds only.

[0083] The contents provided by any of the servers 1-1 through 1-M areof two kinds: those stored beforehand in the servers, and thoserepresentative of broadcast programs received by the servers.

[0084] Each of the servers 1-1 through 1-M accommodates contentsincluding MPEG (Moving Picture Experts Group) image data and/or sounddata. These servers also have antennas (not shown) receiving terrestrialor satellite-relayed radio waves transmitted from TV stations, anddecodes signals fed from the antennas to generate image data and/orsound data representing received broadcast programs.

[0085] The servers 1-1 through 1-M each transmit stored contents to anyone of the personal computers 2-1 through 2-N in one of two ways: usinga file accommodating stored contents, or in the form of a data streamsuch as an MPEG transport stream or an MPEG packetized elementarystream.

[0086] When the servers 1-1 through 1-M each transmit received broadcastprogram contents to any one of the personal computers 2-1 through 2-N,the transmission is accomplished only in the form of a data stream suchas the MPEG transport stream or MPEG packetized elementary stream.

[0087] The server 1-1 may receive a request for contents over thenetwork 3 from the personal computer 2-1 acting as a client. In thatcase, the server 2-1 transmits requested contents to the personalcomputer 2-1 in response.

[0088] When the personal computer 2-1 acting as a client receives a fileaccommodating contents from the server 1-1, the personal computer 2-1records the received contents. The personal computer may later reproducethe contents thus recorded.

[0089] When the personal computer 2-1 receives a stream of contents fromthe server 1-1, the personal computer reproduces the contents beingreceived.

[0090] The server 1-1 may also receive a request for contents over thenetwork 3 from any one of the personal computers 2-2 through 2-N actingas clients. In such a case, the server 1-1 transmits the requestedcontents to the requesting personal computer.

[0091] When any one of the personal computers 2-2 through 2-N as clientsreceives a file of contents from the server 1-1, the personal computerin question records the received contents. The personal computer maylater reproduce the contents thus recorded.

[0092] When any one of the personal computers 2-2 through 2-N receives astream of contents from the server 1-1, the personal computer inquestion reproduces the contents being received.

[0093] The servers 1-2 through 1-M may each receive a request forcontents over the network 3 from the personal computer 2-1 acting as aclient. In that case, the server in question transmits the requestedcontents to the requesting personal computer 2-1.

[0094] When the personal computer 2-1 acting as a client receives a fileof contents from any one of the servers 1-2 through 1-M, the personalcomputer 2-1 records the received contents. When the personal computer2-1 receives a stream of contents from any one of the servers 1-2through 1-M, the personal computer 2-1 reproduces the contents beingreceived.

[0095] The servers 1-2 through 1-M may each receive a request forcontents over the network 3 from any one of the personal computers 2-2through 2-N acting as clients. In such a case, the server in questiontransmits the requested contents to the requesting personal computer.

[0096] When one of the personal computers 2-2 through 2-N acting asclients receives a file of contents from any one of the servers 1-2through 1-M, the personal computer in question records the receivedcontents. When one of the personal computers 2-2 through 2-N receives astream of contents from any one of the servers 1-2 through 1-M, thepersonal computer in question reproduces the contents being received.

[0097] Each of the servers 1-1 through 1-M can function as a chatserver. When connected to a plurality of the personal computers 2-1through 2-N acting as clients, the chat server provides the connectedclients with a chat service.

[0098] Illustratively, the personal computer 2-1 as a client maytransmit text data for chat to the server 1-1 over the network 3. Onreceiving the chat text data from the personal computer 2-1, the server1-1 forwards the received text data for chat to those of the personalcomputers 2-2 through 2-N which are being connected.

[0099] Likewise, any one of the personal computers 2-2 through 2-N maytransmit text data for chat to one of the servers 1-2 through 1-M overthe network 3. In turn, the server in question receives the chat textdata from the transmitting personal computer and forwards the receiveddata to the other connected clients among the personal computers 2-1through 2-N.

[0100] The network 3 may be any one of technically acceptable networksincluding a local area network and the Internet. Illustratively, thenetwork 3 may be an IEEE (Institute of Electrical and ElectronicsEngineers) 1394-based or a 100 BASE-T network. The type of the network 3is not limitative of this invention.

[0101] In the description that follows, the servers 1-1 through 1-M willbe simply called the server 1 if there is no need to make distinctiontherebetween. Likewise the personal computers 2-1 through 2-N will besimply called the personal computer 2 if they need not be distinguishedfrom one another.

[0102]FIG. 2 is a block diagram outlining a typical structure of theserver 1. A CPU (central processing unit) 21 executes an operatingsystem (OS) and application programs, to be described later with FIG. 4,on the server 1. A ROM (read-only memory) 22 accommodates basicallyfixed data as part of the programs and operation parameters used by theCPU 21. A RAM (random-access memory) 23 stores programs executed by theCPU 21 and parameters that are varied as needed during the execution.These component parts are interconnected by a host bus 24.

[0103] The host bus 24 is connected via a bridge 25 to an external bus26 such as a PCI (Peripheral Component Interconnect/Interface) bus.

[0104] A keyboard 28 is operated by a user to enter various commandsinto the CPU 21. A mouse 29 is manipulated by the user to point to andselect items on a display unit 30. The display unit 30 is constituted bya CRT (cathode ray tube) or a liquid crystal display (LCD) displayingdiverse kinds of information in text and image. A hard disc drive (HDD)31 and a floppy (registered trademark) disc drive 32 drive a hard discand a floppy disc respectively so that programs and information to behandled by the CPU 21 may be written to or read from the disc inquestion. Speakers 33 are provided to reproduce sounds.

[0105] A drive 34 reads programs or data from a magnetic disc 41, anoptical disc 42, a magneto-optical disc 43, or a semiconductor memory 44loaded in the drive. The retrieved programs or data are supplied to theHDD 31 or RAM 23.

[0106] The components ranging from the keyboard 28 to the drive 34 areconnected to an interface 27. Tn turn, the interface 27 is connected tothe CPU 21 via the external bus 26, bridge 25, and host bus 24.

[0107] An image processing board 35 under control of the CPU 21generates image and sound data based on signals coming from an antenna,not shown, the generated data being representative of broadcast programsthat have been captured by the antenna. The image and sound data areoutput to the HDD 31 over the external bus 26 and through the interface27.

[0108] The image processing board 35 under control of the CPU 21 alsogenerates a stream of image and sound data based on signals coming fromthe antenna, not shown, the generated data stream being representativeof broadcast programs that have been captured by the antenna. The datastream is output to any one of the personal computers 2-1 through 2-Nover the network 3.

[0109] Under control of the CPU 21, the image processing board 35 inputsa file of image or sound data from the HDD 31 over the external bus 26and through the interface 27, and transmits the input file to any one ofthe personal computers 2-1 through 2-N over the network 3. Also undercontrol of the CPU 21, the image processing board 35 retrieves image orsound data from the HDD 31 to generate a data stream representing theretrieved image or sound data, and transmits the generated data streamto any one of the personal computers 2-1 through 2-N over the network 3.

[0110] The image processing board 35 is connected to the CPU 21 via theexternal bus 26, bridge 25, and host bus 24.

[0111] A communication board 36 may illustratively be a modem boardcommunicating with other personal computers or servers via apublic-switched network made up of telephone lines.

[0112]FIG. 3 is a block diagram illustrating a typical structure of theimage processing board 35. In FIG. 3, a tuner 51 acquires externallysupplied TV broadcast signals under control of the CPU 21 and selectsthe broadcast program on a specific channel out of a plurality of TVchannels. The tuner 51 then supplies an A/D (analog-to-digital)converter 52 with analog signals representing the images and sounds ofthe TV program on the selected channel.

[0113] The A/D converter 52 converts the image and sound analog signalsrepresentative of the program images and sounds into digital signals,and outputs the converted digital signals to a selector 53.

[0114] Where the broadcast TV program is to be recorded to the HDD 31 ortransmitted to the personal computer 2 as a stream of digital signals,the selector 53 forwards the digital signals coming from the A/Dconverter 52 to an encoder 54. If the TV program is to be reproduced onthe display unit 30 and through the speakers 33, the selector 53forwards the digital signals from the A/D converter 52 to a bridge 55.

[0115] If the TV program is to be recorded to the HDD 31, or transmittedas a stream of digital signals to the personal computer 2 while beingreproduced on the display unit 30 and through the speakers 33, then theselector 53 supplies the digital signals from the A/D converter 52 toboth the encoder 54 and the bridge 55 simultaneously.

[0116] Given the digital signals representing the program images andsounds from the selector 53, the encoder 54 codes the received signalsaccording to a suitable compression coding method such as MPEG. Thecoded image and sound data are fed from the encoder 54 to the bride 55.

[0117] Through the bridge 55, a decoder 56 may be supplied with thecoded image and sound data having undergone compression coding based onthe suitable method such as MPEG. In that case, the decoder 56 decodesthe coded image and sound data received back to digital signals. Afterdecoding, the digital signals are sent from the decoder 56 to the bridge55.

[0118] Where the coded image data and sound data representing the TVbroadcast program are to be recorded to the HDD 31, the bridge 55forwards the coded data coming from the encoder 54 to the HDD 31 overthe external bus 26. If the TV program is to be reproduced on thedisplay unit 30 and through the speakers 33, then the bridge 55 feedsthe display unit 30 with digital image signals coming from the A/Dconverter 52 via the selector 53 while concurrently supplying digitalsound signals to the speakers 33 over the external bus 26 and throughthe interface 27.

[0119] Where the coded image and sound data are to be reproduced fromthe HDD 31, the bridge 55 transfers the coded data of interest from theHDD 31 to the decoder 56. The bridge 55 supplies digital image signalscoming from the decoder 56 to the display unit 30 over the external bus26 and through the interface 27 while concurrently feeding digital soundsignals from the decoder 56 to the speakers 33 over the external bus 26and through the interface 27.

[0120] When reproducing a TV program, the display unit 30 displays TVprogram images based on the digital or analog signals fed through theinterface 27, the analog signals having undergone a predeterminedconversion process.

[0121] On reproducing the TV program, the speakers 33 reproduce TVprogram sounds reflecting the digital or analog signals fed through theinterface 27, the analog signals having undergone the predeterminedconversion process.

[0122] A network interface 57 receives a content request from thepersonal computer 2 over the network 3. The received request isforwarded from the network interface 57 to the CPU 21 or RAM 23 throughthe bridge 55 and over the external bus 26.

[0123] When transmitting content to the personal computer 2 in responseto the request therefrom, the bridge 55 feeds the network interface 57with coded image or sound data from the encoder 54 or with coded datafrom the HDD 31. Under control of the CPU 21, the coded data from theHDD 31 are sent either in a single file or as a data stream from thebridge 55 to the network interface 57.

[0124] Given the coded image or sound data from the bridge 55, thenetwork interface 57 illustratively puts the data in packets andtransmits the packetized data to the personal computer 2 over thenetwork 3.

[0125]FIG. 4 is an explanatory view of application programs performed bythe server 1. A recording/reproducing program 81 causes the imageprocessing board 35 to convert analog image and sound signals into codedimage and sound data in MPEG format, the analog image and sound signalsbeing representative of the TV program content on a specific channelreceived by the tuner 51. The content data thus coded are recorded tothe HDD 31.

[0126] The recording/reproducing program 81 causes the image processingboard 35 to decode content data from the HDD 31 so as to generatedigital image and sound signals that are uncompressed. Under control ofthe recording/reproducing program 81, the image processing board 35causes the display unit 30 to display images and the speakers 33 tooutput sounds reflecting the decompressed digital signals.

[0127] A management/search program 82 causes the display unit 30 todisplay specific information such as details of contents recorded on theHDD 31 as well as dates and times at which such recordings were made.The management/search program 82 instructs the recording/reproducingprogram 81 to reproduce a specific content or to select the content tobe edited. The management/search program 82 supplies information on theselected content to an editing program 83 for editing purposes.Furthermore, the management/search program 82 gives an unattendedrecording instruction to an unattended recording reservation program 84.

[0128] Based on the content data recorded on the HDD 31, the editingprogram 83 edits images and sounds of the selected content (i.e., someimages and sounds included in the specific content are put together) soas to generate content data in a predetermined format for reproductionof edited images and sounds.

[0129] Illustratively, a content in the predetermined format does notinclude digital image or sound data and is constituted instead byinformation for designating both the selected content and the images andsounds to be utilized. Such a content may be reproduced by therecording/reproducing program 81.

[0130] Given suitable settings, the unattended recording reservationprogram 84 reserves the content to be recorded unattended. The reservedcontent complies with the current settings in place (such as recordingtime and recording mode determining the image quality of recording) andis assigned a storage space beforehand on the HDD 31.

[0131] A reservation monitoring program 85 runs constantly when theserver 1 is in operation (i.e., the program 85 is resident while the OSis running). As such, the reservation monitoring program 85 executesunattended recording of the content reserved by the unattended recordingreservation program 84 in keeping with an RTC (real time clock), notshown. The reservation monitoring program 85 also permits modificationsof the settings of the content subject to unattended recording.

[0132] An image server program 86 causes the image processing board 35to generate coded data (i.e., MPEG-format image and sound data)representing the TV program on a specific channel received by the tuner51. Under control of the image server program 86, the image processingboard 35 then transmits the coded data generated to represent the imageand sound data to the personal computer 2 over the network 3.

[0133] The image server program 86 also causes the image processingboard 35 to transfer coded data denoting MPEG-format image and sounddata from the HDD 31 where the data have been recorded, to the personalcomputer 2 over the network 3.

[0134] A chat server program 87 causes the image processing board 35 toreceive text data from any one client among the personal computers 2-1through 2-N. Under control of the chat server program 87, the imageprocessing board 35 forwards the received text data to another clientamong the personal computers 2-1 through 2-N.

[0135]FIG. 5 is a block diagram indicating a typical structure of thepersonal computer 2. A CPU (central processing unit) 101 executes an OSand application programs, to be described later with FIG. 6, on thepersonal computer 2. A ROM 102 accommodates basically fixed data as partof the programs and operation parameters used by the CPU 101. A RAM 103stores programs executed by the CPU 101 and parameters that are variedas needed during the execution. These component parts are interconnectedby a host bus 104.

[0136] The host bus 104 is connected via a bridge 105 to an external bus106 such as a PCI bus.

[0137] A keyboard 108 is operated by a user to enter various commandsinto the CPU 101. A mouse 109 is manipulated by the user to point to andselect items on a display unit 110. The display unit 110 is constitutedby a CRT or a liquid crystal display displaying diverse kinds ofinformation in text and image. A hard disc drive (HDD) 111 and a floppy(registered trademark) disc drive 112 drive a hard disc and a floppydisc respectively so that programs and information to be handled by theCPU 101 may be written to or read from the disc in question. Speakers113 are provided to reproduce sounds.

[0138] A drive 114 reads programs or data from a magnetic disc 121, anoptical disc 122, a magneto-optical disc 123, or a semiconductor memory124 loaded in the drive. The retrieved programs or data are supplied tothe HDD 111 or RAM 103.

[0139] The components ranging from the keyboard 108 to the drive 114 areconnected to an interface 107. In turn, the interface 107 is connectedto the CPU 101 via the external bus 106, bridge 105, and host bus 104.

[0140] A network interface card 115 under control of the CPU 101receives a data stream from the server 1 over the network 3. The streamthus received is forwarded to the RAM 103 through the external bus 106,bridge 105, and host bus 104.

[0141] Also under control of the CPU 101, the network interface card 115receives a single file of data from the server over the network 1. Thereceived data in the file are sent to the HDD 111 over the external bus106 and through the interface 107.

[0142] The network interface card 115 is connected to the CPU 101through the external bus 106, bridge 105, and host bus 104.

[0143] A communication board 116 may illustratively be a modem boardcommunicating with other personal computers or servers via apublic-switched network constituted by telephone lines.

[0144]FIG. 6 is an explanatory view of application programs performed bythe personal computer 2 acting as a client. A client program 131 causesthe network interface card 115 to transmit a content request to theserver 1 over the network 3. With image and sound data (i.e., content)sent back from the server 1 over the network 3, the client program 131causes the network interface card 115 to receive the returned data.Under control of the client program 131, the network interface card 115receives the content either in a single file or as a data stream.

[0145] On receiving the content data, the client program 131 eithercauses the HDD 111 to record the received data, or displays images onthe display unit 110 while concurrently outputting sounds through thespeakers 113.

[0146] A chat program 132 causes the display unit 110 to display textdata entered through the keyboard 108 while simultaneously making thenetwork interface card 115 transmit the text data to the server 1 overthe network 3.

[0147] The chat program 132 causes the network interface card 115 toreceive text data from the server 1 over the network 3. The chat program132 then causes the display unit 110 to display characters representingthe received text data.

[0148] What follows is a description of commands and messages used bythe image server program 86 and client program 131, as well as commandsand messages employed by the chat server program 87 and chat program132.

[0149] Connection between the image server program 86 and the clientprogram 131 is established illustratively through a port 3862. The imageserver program 86 and client program 131 exchange data therebetween on aTCP/IP text basis. Commands and responses are each delimited by a linefeed code (‘¥n’). When getting ready to accept the next command, theimage server program 86 transmits a period (‘.’) to the client program131.

[0150] If any unacceptable character string (command) is transmitted orreceived between the image server program 86 and the client program 131,an error can occur. The error is displayed in the form of “Error (withan error number).”

[0151] The image server program 86 and client program 131 communicatewith each other basically in the following steps:

[0152] Initially, the client program 131 transmits a command 1 to theimage server program 86. Upon receipt of the command 1, the image serverprogram 86 sends a response to the client program 131. Having dealt withthe received response, the image server program 86 transmits to theclient program 131 a period “.” indicating that the image server program86 is ready to accept the next command. In turn, the client program 131transmits a command 2 (next command) to the image server program 86.

[0153] The steps above are repeated as needed.

[0154] Exchanges of commands between the image server program 86 and theclient program 131 can be monitored on a log screen of the image serverprogram 86.

[0155] Illustratively, if it is desired to record as many log entries aspossible, the following registry (DWORD value) need only be createdanew:

[0156] HKEY_CURRENT_USER¥Software¥SonyCorporation¥Yebisu¥GigaPocketServer¥Settings¥MessageLevel

[0157] The greater the DWORD value, the more log entries that can berecorded. The maximum allowable DWORD value is about 0×10. In the aboveregistry, the part “¥GigaPocket Server” indicates the folder thatcontains the image server program 86.

[0158] The client program 131 may browse the server 1 which executes theimage server program 86 and which exists on the network 3. When theprocess below is carried out, the client program 131 can acquire thecomputer name of the server 1. Specifically, the client program 131 isset to transmit an IP (Internet Protocol) address of 255.255.255.255 inbroadcasting a character string “Giga Pocket message: What is yourname?” through the 3862 port under UDP (User Datagram Protocol).Transmitting the IP address causes the image server program 86 to returna response “Giga Pocket message: My name is SERVER” to the 3862 portunder UDP. The part “Giga Pocket message:” indicates that the characterstring in question is a command or a response exchanged between theimage server program 86 and the client program 131. The part “SERVER”denotes the computer name of the server 1.

[0159] Suppose that there exist on the network 3 three servers 1 named“SABA,” “KAME” and “UNAGI” each executing the image server program 86.In that case, given the message “Giga Pocket message: What is yourname?” broadcast by the client program 131, these servers 1 return in anarbitrary order the following responses:

[0160] Giga Pocket message: My name is KAME

[0161] Giga Pocket message: My name is SABA

[0162] Giga Pocket message: My name is UNAGI

[0163] The above feature allows the client program 131 to know theservers 1 executing the image server program 86 on the network 3. Theusers, for their part, can select a desired server 1 without entering aspecific server name into a dialog box or the like.

[0164] Each of the commands provided for use by the image server program86 is described below.

[0165] An “initialize” command is described as “Initialize [P=<password>].” The part <pass word> denotes a character string password.Although there are no restrictions on the number of characters used inthe password, only the high-order eight bytes of the password are usedfor authentication.

[0166] The initialize command is used to initialize the image serverprogram 86 preparatory to communication. After connection is establishedwith the image server program 86, the image server program 86 must bemade to execute the initialize command once. If no password is set forthe image server program 86, there is no need to designate <pass word>.The password is not in plain text but is encrypted.

[0167] When the entered password is correct, the image server program 86transmits to the client program 131 a character string “Initialize OK”as a response to the initialize command. If the password is not correctand initialization has failed, then the image server program 86transmits a period “.” to the client program 131 in response to theinitialize command.

[0168] A “help” command is described as “Help.” This command is used todisplay a command list of the image server program 86. In response tothe help command, the image server program 86 transmits the command listto the client program 131.

[0169] A “create tape” command is described as “CreateTape <quality>[N=<video capsule name>]. The part <quality> accommodates a value of 0,1 or 2 designating the image quality of contents. That is, the value 0stands for high quality, 1 for standard quality, and 2 for long-playquality. The part <video capsule name> denotes the name of a particularcontent.

[0170] The create tape command causes the image server program 86 tocreate a content named <video capsule name> in an appropriate cabinet. Acabinet is a unit in which to store at least one content.

[0171] If the part <video capsule name> is not designated, the imageserver program 86 automatically generates a name of the content. It isalso possible to establish a name and a memo for the created contentthrough the use of a “set tape name” command or a “set memo” command, tobe described later.

[0172] Upon receipt of the create tape command, the image server program86 transmits a response “NewTapeID: <tapeID>” to the client program 131.The part <tapeID> denotes an ID of the newly created content.

[0173] A “create reserve” command is described as “CreateReserve<tapeID> S=yyyy/mm/dd, hh:mm;ss E=yyyy/mm/dd, hh:mm:ss CH=<No.>,<caption>.” The part <tapeID> stands for a content number that may beacquired using the create tape command. The part “yyyy/mm/dd, hh:mm:ss”represents the year, month, day, hours, minutes, and seconds for thereservation in question. The character “S” means a starting date andtime, and “E” signifies an ending date and time.

[0174] The part <No.> stands for a channel number and <caption> for achannel name (i.e., character string). For example, the part <caption>may contain “NHK Educational.”

[0175] The create reserve command causes the image server program 86 toreserve a content anew for unattended recording. Prior to execution ofthe create reserve command, it is necessary to carry out the create tapecommand so as to obtain the number <tapeID> of the content to be createdanew. The channel number <No.> and name <caption> are acquired by use ofan “acquire channel” command.

[0176] When successfully reserving a content for unattended recording inresponse to the create reserve command, the image server program 86transmits “reserveID: <reserveID>” to the client program 131. Ifreservation of a content for unattended recording has failed, then theimage server program 86 transmits “parameter error” to the clientprogram 131. The part <reserveID> represents a recording ID.Illustratively, unattended recording reservation can be unsuccessful ifthe server 1 has no free storage area.

[0177] A “delete tape” command is described as “DeleteTape<tapeID>[<0=movie only>]. The part <tapeID> indicates a content number.If the value 0 is set for <0=movie only>, then MPEG data alone aredeleted.

[0178] The delete tape command causes the image server program 86 todelete a content from the server 1. If the part “movie only” isdesignated, the image server program 86 deletes only the moving imagedata and leaves intact the database and index information constitutingdata (such as attribute data) related to the moving image data. Uponreceipt of the delete tape command, the image server program 86transmits a response “Deleted: <tapeID>” to the client program 131. Thepart <tapeID> indicates the content number of the deleted content.

[0179] A “first tape” command is described as “FirstTape.” The firsttape command, used in combination with a “next tape” command to bedescribed later, permits acquisition of IDs of contents recorded in theserver 1. Before execution of the next tape command, the first tapecommand must be carried out. Usually a “get tape list” command, to bedescribed later, is used to acquire a list of IDs of all contentsrecorded in the server 1.

[0180] Given the first tape command, the image server program 86transmits a response “ID: <tapeID>” to the client program 131. The part<tapeID> denotes the ID of the first content detected.

[0181] The next tape command is described as “NextTape.” The next tapecommand, used in combination with the first tape command, permitsacquisition of the IDs of contents held in the server 1. The first tapecommand must be executed before the next tape command is carried out.

[0182] Upon receipt of the next tape command, the image server program86 transmits a response “ID: <tapeID>” to the client program 131. Thepart <tapeID> indicates the ID of the content detected.

[0183] A “first library” command is described as “FirstLib.” Thiscommand is used in combination with a “next library” command, to bedescribed later, to acquire IDs of cabinets that exist in the server 1.Prior to execution of the next library command, the first librarycommand must be carried out. Usually, a “get library list” command isused to obtain a list of the IDs of all cabinets recorded in the server1.

[0184] Given the first library command, the image server program 86transmits a response “libID: <libID>” to the client program 131. Thepart <libID> indicates the ID of the first cabinet detected.

[0185] The next library command is described as “NextLib.” The nextlibrary command is used in combination with the first library command inorder to obtain the IDs of cabinets that exist in the server 1. Thefirst library command must be executed before the next library commandis carried out.

[0186] Upon receipt of the next library command, the image serverprogram 86 transmits a response “libID: <libID>” to the client program131. The part “libID” denotes the ID of the first cabinet detected.

[0187] A “get library” command is described as “GetLibList.” The getlibrary command is used to acquire a list of IDs and names of cabinets.

[0188] Tn response to the get library command received, the image serverprogram 86 transmits to the client program 131 a list “lib-list:<libID>N=<lib name>” reflecting the number of existing cabinets. Thepart <libID> stands for cabinet IDs and <lib name> for cabinet names.

[0189] A “get tape list” command is described as “GetTapeList <arg>.”The part <arg> denotes an argument for limiting the types of contents tobe acquired. If the value 0 is set for <arg>, the IDs and names of allcontents are acquired; if the value set for <arg> is other than 0, thenthe IDs and names of ordinary contents are acquired. The get tape listcommand is thus used to acquire a list of IDs and names of cabinets.

[0190] In response to the get tape list command received, the imageserver program 86 transmits to the client program 131 a character string“tape-list: <tapeID> <libID> <type> N=<video capsule name>” reflectingthe number of existing contents. The part <tapeID> stands for contentnumbers and <libID> for cabinet IDs. The part <tape> accommodates one ofN, L, I, P, E, R, and “*” (asterisk). The character N stands for anordinary content, L for a list, I for scene information only, E forerror, P for parental supervision required, R for reservation, and “*”for recording in progress. The part <video capsule name> denotes thename of the content.

[0191] A “get reserve list” command is described as “GetreserveList.”The get reserve list command is used to display a list of contentsreserved for unattended recording.

[0192] In response to the get reserve list command received, the imageserver program 86 transmits to the client program 131 a character string“reserve-list: <reserveID> <tapeID> S=yyyy/mm/dd, hh:mm E=yyyy/mm/dd,hh:mm N=<video capsule name>” reflecting the number of existingreservations. The part <reserveID> stands for a reservation ID, <tapeID>for a content ID, and “yyyy/mm/dd, hh:mm:ss” for the year, month, day,hours, minutes and seconds for the reservation in question. Thecharacter S stands for a starting date and time, E for an ending dateand time, and <video capsule name> for the name of the content.

[0193] A “get tape info” command is described as “GetTapeInfo <tapeID>.”The part <tapeID> represents the ID of the content whose information isdesired to be acquired. The get tape info command is thus used to obtaincontent information.

[0194] A “get library info” command is described as “GetLibInfo <libID>.The part <libID> denotes the ID of the cabinet whose information isdesired to be obtained. The get library info command is thus used toacquire cabinet information.

[0195] A “get channel” command is described as “GetChannel.” The getchannel command is used to display channel information.

[0196] In response to the get channel command received, the image serverprogram 86 transmits to the client program 131 a character string“CH-DB: <No.>, <caption>, <caption1> [, <caption2> [, . . . ]]]reflecting the number of existing channels. The part <No.> stands for achannel number, <caption> for the most common channel name, <caption 1>for a first channel name, and <caption 2> for a second channel name. Forexample, the character string “CH-DB: <No.>, <caption>, <caption1> [,<caption2> [, . . . ]]] transmitted to the client program 131 mayconsist of “CH-DB:3, NHK Educational, NHK Educational, NHK 2.”

[0197] A “get memo” command is described as “GetMemo <tapeID>.” The part<tapeID> represents the ID of the content whose information is to beacquired in the form of a memo. The get memo command is thus used toacquire a content memo.

[0198] A “set tape name” command is described as “SetTapeName <tapeID>N=<new tape name>.” The part <tapeID> stands for a content ID and <newtape name> for a content name. The set tape name command is thus used toset a content name.

[0199] Given the set tape name command, the image server program 86transmits a response “new tape name: <new tape name>” to the clientprogram 131. The part <new tape name> denotes the content name inquestion.

[0200] A “set memo” command is described as “SetMemo<tapeID> M=<memostring>.” The part <tapeID” represents a content ID. The part <memostring> denotes a memo composed of a character string. The set memocommand is thus used to set a memo for the content. Given the set memocommand, the image server program 86 transmits a response “OK” to theclient program 131.

[0201] A “get movie size” command is described as “GetMovieSize<tapeID>.” The part <tapeID> stands for a content ID. The get movie sizecommand is thus used to obtain the size of a content file.

[0202] Upon receipt of the get movie size command, the image serverprogram 86 transmits a response “MovieSize: <size>” to the clientprogram 131. The part <size> denotes the size of an MPEG file.

[0203] A “get index size” command is described as “GetIndexSize<tapeID>.” The part <tapeID> represents a content ID. The get index sizecommand is thus used to acquire the size of an index file that storescontent-related data.

[0204] On receiving the get index size command, the image server program86 transmits a response “IndexSize: <size>” to the client program 131.The part <size> indicates the size of the index file in question.

[0205] A “get media info” command is described as “GetMediaInfo.” Theget media info command is used to acquire the version number of theimage server program 86. Given this command, the image server program 86transmits to the client program 131 the version number of theappropriate program held in the same folder as that of an executivedirectory.

[0206] Given the get media info command, the image server program 86transmits a response “MediaInfo: <size1> <size2> <hh:mm:ss1> <hh:mm:ss2><hh:mm:ss3> to the client program 131. The part <size1> denotes the fullcapacity of the hard disc drive used by the image server program 86 inthe server 1. The part <size2> represents a free capacity of the harddisc drive used by the image server program 86 in the server 1. The part<hh:mm:ss1> stands for a recordable time in high quality, <hh:mm:ss2>for a recordable time in standard quality, and <hhh:mm:ss3> for arecordable time in long-play quality.

[0207] A “read open tape” command is described as “ReadOpenTape<tapeID>.” The part <tapeID> denotes the ID of the content desired to bereproduced.

[0208] The read open tape command is used to open a desired content inread-only mode. Whenever a content is to be reproduced, the read opentape command is always executed. Executing the read open tape commandcauses the client program 131 to acquire <handle>, <SSG port> and <SSXport>. Until a “close tape” command is executed, the part <handle> isused to operate the content that is opened in read-only mode. The imageserver program 86 in the server 1 transmits image data through the port<SSG port> and index data through the port <SSX port>. This requiresthat connection be established prior to execution of any one oftransmission start request commands (Read SSG and Read SSX).

[0209] Upon receipt of the read open tape command, the image serverprogram 86 transmits a response “ReadOpen: <handle> <SSG port> <SSXport>” to the client program 131. The part <handle> is self-explanatoryindicating a handle. The handle is designated for the opened content tobe operated, until a close tape command is carried out. The part <SSGport> denotes the number of the port through which the client program131 receives image data. The part <SSX port> represents the number ofthe port through which the client program 131 receives index data.

[0210] A “close tape” command is described as “CloseTape <handle>.” Thepart <handle> indicates the handle of the content that is opened.

[0211] The close tape command is thus used to close the content that hasbeen opened by use of the read open tape command. When the openedcontent is to be terminated, it must be closed by executing the closetape command. Given the close tape command, the image server program 86transmits a response “Tape closed” to the client program 131.

[0212] A “write open tape” command is described as “WriteOpenTape<tapeID>.” The part <tapeID> denotes a content ID.

[0213] The write open tape command is used to open a content in writemode. Executing the write open tape command causes the client program131 to acquire <handle>, <SSG port> and <SSX port>. The part <handle> isused to operate the content opened in write mode, until a write closetape command is carried out.

[0214] Connection must be established before the image server program 86in the server 1 can transmit image data through the port <SSG port> andindex data through the port <SSX port>.

[0215] On receiving the write open tape command, the image serverprogram 86 transmits a response “WriteOpen: <handle> <SSG port> <SSXport>” to the client program 131. The part <handle> is self-explanatoryrepresenting the handle. Until a close tape command is executed, thishandle is designated to operate the content that has been opened. Thepart <SSG port> denotes the number of the port through which the clientprogram 131 outputs image data, and the part <SSX port> represents thenumber of the port through which the client program 131 outputs indexdata.

[0216] A “write close tape” command is described as “WriteCloseTape<handle> <size>.” The part <handle> stands for the handle of the contentthat is opened. The part <size> denotes the number of bytes (a 64-bitinteger) corresponding to the size of the data written in the openedcontent.

[0217] Executing the write close tape command causes the image serverprogram 86 to close the content that has been opened by use of the writeopen tape command. When the opened content is to be terminated, it mustbe closed by executing the write close tape command.

[0218] If the size of the actually written data is equal to the part<size>, then the image server program 86 transmits to the client program131 “Tape closed” in response to the write close tape command received.If the size of the actually write data is not equal to the part <size>and the data are thus deleted, the image server program 86 transmits tothe client program 131 “Close and Delete” in response to the write closetape command received. If the size of the actually written data fails tomatch the part <size>, the image server program 86 transmits to theclient program 131 “unmatched size” in response to the write close tapecommand received.

[0219] A “read SSG” command is described as “ReadSSG <handle> <readbytes>.” The part <handle> denotes the handle of the content to bereproduced. The handle is acquired by use of the read open tape command.

[0220] The part <read bytes> indicates a requested read size in bytesrepresented by a value between 0 through 64. If the value 0 isdesignated, the image server program 86 executes a burst read, i.e., anoperation of transmitting as much data as possible in bursts.

[0221] The read SSG command causes the image server program 86 totransmit content image data through the port <SSG port> acquired by useof the read open tape command. Before executing the read SSG command,the client program 131 must establish connection with the image serverprogram 86 via the port <SSG port>.

[0222] In burst read mode, the image server program 86 transmits nothingto the client program 131 in response to the read SSG command received.Where burst read mode is not in effect, the image server program 86transmits “MovieData: <handle> <size>” to the client program 131 inresponse to the read SSG command. The part <handle> indicates a handleand the part <size> denotes the number of bytes corresponding to thesize of the image data actually transmitted by the server 1. Whetherburst read mode is in effect or not, the image server program 86 maytransmit “NoMoreData” to the client program 131 in response to the readSSG command, indicating that there is no more data to transfer or thatthe content has been transmitted to the end.

[0223] A “read head tail SSG” command is described as “ReadHeadTail SSG<handle> <size>.” The part <handle> indicates a handle and the part<size> represents the requested read size in bytes.

[0224] The read head tail SSG command is used to acquire data in thesize designated by the part <size> at the beginning and at the end of acontent. Before executing the read head tail SSG command, the clientprogram 131 must establish connection with the image server program 86through the port <SSG port>. The read head tail SSG command is used toshort the time required for rendering by a moving picture displayprogram.

[0225] Given the read head tail SSG command, the image server program 86transmits a response “HeadTailData: <handle> <size>*2” to the clientprogram 131. The part <handle> indicates a handle and the part <size>stands for the number of bytes corresponding to the size of the dataactually transmitted by the server 1.

[0226] A “seek SSG” command is described as “SeekSSG <handle> <origin><offset>.” The part <handle> indicates a content handle which isacquired by use of the read open tape command. The part <origin> denotesthe origin, i.e., the position of reference from which to seek. Thevalue 0 stands for the starting position, 1 for the current position,and 2 for the ending position. The part <offset> represents the amountof offset in bytes, specifiable within the range of LONGLONG (signed64-bit integer).

[0227] The seek SSG command is used to move a file pointer. Although theseek SSG command may be executed in burst read mode, any alreadytransmitted data will not be cancelled thereby. With burst read mode ineffect, the seek SSG command is usually used in combination with a“pause SSG” command and a “resume SSG” command, to be described later.

[0228] Upon receipt of the seek SSG command, the image server program 86transmits a response “Seek End: <handle>” to the client program 131. Thepart <handle> indicates a content handle.

[0229] A “pause SSG” command is described as “PauseSSG <handle>.” Thepart <handle> indicates a content handle which is acquired by use of theread open tape command.

[0230] The pause SSG command is used to stop data transmissiontemporarily in burst read mode. If burst read mode is not in effect, thepause SSG command is ignored.

[0231] Given the pause SSG command, the image server program 86transmits a response “Pause: <handle>” to the client program 131. Thepart <handle> indicates a content handle.

[0232] A “resume SSG” command is described as “ResumeSSG <handle>.” Thepart <handle> indicates a content handle which is obtained by use of theread open tape command. The resume SSG command is used to resume thedata transmission that has been stopped by use of the pause SSG command.

[0233] On receiving the resume SSG command, the image server program 86transmits a response “Resume: <handle>” to the client program 131. Thepart <handle> indicates a content handle.

[0234] A “read SSX” command is described as “ReadSSX <handle> <readbytes>.” The part <handle> indicates the handle of the content desiredto be reproduced. The handle is acquired by use of the read open tapecommand. The part <read bytes> is any one of values 0 through 64 anddenotes the requested read size in bytes. If the value 0 is designated,the image server program 86 executes burst read operation.

[0235] The read SSX command causes the image server program 86 totransmit content index data through the port <SSX port> acquired by useof the read open tape command. Before executing the read SSX command,the client program 131 must establish connection with the image serverprogram 86 through the port <SSX port>.

[0236] When burst read mode is in effect, the image server program 86transmits nothing to the client program 131 in response to the read SSXcommand received. With burst read mode not in effect, the image serverprogram 86 transmits “IndexData: <handle> <size>” in response to theread SSX command. The part <handle> stands for a handle and <size> forthe number of bytes corresponding to the size of the index data actuallytransmitted by the server 1. Whether burst read mode is in effect ornot, the image server program 86 may transmit “NoMoreIndex” to theclient program 131 in response to the read SSX command, indicating thatthere is no more data to transmit in response to the read SSX command orthat the index data have been transmitted to the end.

[0237] A “seek SSX” command is described as “SeekSSX <handle> <0, 1 or2> <offset>.” The part <handle> indicates a content handle which isacquired by use of the read open tape command. The part <origin> denotesthe origin, i.e., the position of reference from which to seek. Thevalue 0 stands for the starting position, 1 for the current position,and 2 for the ending position. The part <offset> represents the amountof offset in bytes, specifiable within the range of LONGLONG (signed64-bit integer).

[0238] The seek SSX command is used to move a file pointer. Although theseek SSX command may be executed in burst read mode, any alreadytransmitted data will not be cancelled thereby. With burst read mode ineffect, the seek SSX command is usually used in combination with a“pause SSX” command and a “resume SSX” command, to be described later.

[0239] On receiving the seek SSX command, the image server program 86transmits a response “SeekEnd: <handle>” to the client program 131. Thepart <handle> indicates a content handle.

[0240] A “pause SSX” command is described as “PauseSSX <handle>.” Thepart <handle> indicates a content handle which is acquired by use of theread open tape command.

[0241] The pause SSX command is used to stop data transmissiontemporarily in burst read mode. If burst read mode is not in effect, thepause SSG command is ignored.

[0242] Given the pause SSX command, the image server program 86transmits a response “Pause: <handle>” to the client program 131. Thepart <handle> indicates a content handle.

[0243] A “get pico version” command is described as “GetPicoVersion.”The get pico version command is used to acquire the version number ofthe image server program 86. Given this command, the image serverprogram 86 transmits to the client program 131 the version number of theappropriate program held in the same folder as that of the executivedirectory.

[0244] Upon receipt of the get pico version command, the image serverprogram 86 transmits a response “PicoVersion: <version>” to the clientprogram 131. The part <version> denotes the version number of theappropriate program.

[0245] What follows is a description of commands for use by the server 1in receiving TV broadcast programs and transmitting a data stream to thepersonal computers 2 acting as clients, the stream carrying contentsrepresentative of the programs being received.

[0246] Described first are commands used to acquire contentscorresponding to the received TV programs from the server 1, as well asmessages (asynchronous messages) transmitted from the server 1 duringreception of a data stream in asynchronous relation with thetransmission of all commands. It should be noted that while contents arebeing offered, there can be a user who is manipulating the server 1 aswell as users who are already connected to the server 1 and who areviewing images of contents provided as a stream from the server 1.

[0247] The server 1 may not be always ready to transmit contents as astream. For example, while the user at the server 1 is getting theserver 1 to record TV programs, the server 1 refuses in a message anyrequest from the client program 131 to transmit a content stream. Inanother example, during reception of the stream, the client program 131may receive from the server 1 a message saying that transmission of thestream cannot continue. In such cases where the current status ofcontent transmission is varying, asynchronous messages like those aboveare sent from the server 1 to all client programs 131 receiving thecontents as a stream, informing the latter of the varying status.

[0248] The commands made available fall into two broad categories:commands used to transmit a content stream (including LiveStart,LiveStop, LivePause, LiveResume, and [LiveResourceOwner]), and commandsfor changing channels (including LiveSelectCH and LiveQueryCH).

[0249] The asynchronous messages are also classified into two types:messages related to the continuation of content transmission as a stream(including LiveLost, LiveAvailable, and LiveError), and messagesassociated with changing channels and audio modes (includingModeChange).

[0250] These commands and asynchronous messages are described below inmore specific terms.

[0251] A “live start” command is described as “LiveStart <H|S|L>.” Thepart <H|S|L> denotes the image quality of the content transmitted as astream. The character H stands for high image quality, S for standardimage quality, and L for long-play image quality.

[0252] The live start command is used to request the image serverprogram 86 to transmit a content stream. The content stream is sent fromthe image server program 86 to the client program 131 via a portacquired in response to the command. Executing the live start commandcauses the image server program 86 to transmit asynchronous messages ina suitably timed manner to the client program 131. Transmission ofasynchronous messages continues until a “live stop” command, to bedescribed later, is executed.

[0253] Given the live start command, the image server program 86transmits a response “Live: <H|S|L|I> <live handle> <port>” to theclient program 131. The part <H|S|L|I> stands for the image quality ofthe content transmitted as a stream or for the status of the stream. Thecharacter H stands for high image quality, S for standard image quality,L for long-play quality, and I for “live transmission impossible.”

[0254] The response “live transmission impossible” signifies that theserver 1 is incapable of content stream transmission. This can occurwhen the server 1 is illustratively carrying out unattended recording ofa reserved content or its hardware resources are otherwise occupied.

[0255] The part <live handle> indicates a handle as an identifier neededto execute a content stream transmission command. The part <port>indicates the number of the port through which the server 1 transmitsthe content stream.

[0256] A “live stop” command is described as “LiveStop <handle>.” Thepart <handle> represents a handle which is acquired by use of the livestart command or a live resume command and which identifies the contentto be transmitted as a stream.

[0257] The live stop command is used to stop reception of the streamwhich has been started or resumed by the live start command or liveresume command. Following execution of the live stop command, the imageserver program 86 stops transmission of asynchronous messages. Uponreceipt of the live stop command, the image server program 86 transmitsa response “LiveEnd” to the client program 131.

[0258] A “live pause” command is described as “LivePause <live handle>.”The part <live handle> denotes a handle which is acquired by use of thelive start command or live resume command and which identifies thecontent to be transmitted as a stream. The live pause command is thusused to request the server 1 temporarily to stop stream transmission.Given the live pause command, the image server program 86 transmits aresponse “LivePause” to the client program 131.

[0259] A “live resume” command is described as “LiveResume <livehandle>.” The part <live handle> indicates a handle which is acquired byuse of the live start command or live resume command and whichidentifies the content to be transmitted as a stream.

[0260] The live resume command is used to request resumption of streamtransmission that has been stopped temporarily by use of the live pausecommand. In response to the live resume command received, the imageserver program 86 acquires a handle and a port for the new stream to betransmitted or received. The handle that has been used so far isinvalidated at this point.

[0261] On receiving the live resume command, the image server program 86transmits a response “Live Resume: <H|S|L|I> <live handle> <port>” tothe client program 131. The part <H|S|L|I> stands for the image qualityof the content transmitted as a stream or for the status of the stream.The character H stands for high image quality, S for standard imagequality, L for long-play quality, and I for “live transmissionimpossible.” The part <live handle> denotes an identifier which isneeded to execute a content stream transmission command. The part <port>indicates the number of the port through which the server 1 transmitsthe content stream.

[0262] A “live resource owner” command is described as“LiveResourceOwner.” The live resource owner command is used to know thecause of a failure to transmit a content stream or of an interruption ofthe stream.

[0263] A “live select channel” command is described as “LiveSelectCH<live handle> CH=<channel caption>.” The part <live handle> indicates ahandle which is acquired by use of the live start command or live resumecommand and which identifies the content to be transmitted as a stream.The part <channel caption> is a character string that identifies thechannel. A channel name acquired by use of the get channel command isdesignated in the part <channel caption>.

[0264] The live select channel command is used to change the channel ofthe TV program to be transmitted as a content stream. Upon receipt ofthe live select channel command, the image server program 86 transmits aresponse “LiveSelectCH” to the client program 131.

[0265] A “live query channel” command is described as “LiveQueryCH <livehandle>.” The part <live handle> indicates a handle which is acquired byuse of the live start command or live resume command and whichidentifies the content to be transmitted as a stream. The live querychannel command is used to query the channel of the TV program to betransmitted as a content stream.

[0266] On receiving the live query channel command, the image serverprogram 86 transmits a response “Channel: <audio mode> CH=<channelcaption>” to the client program 131. The part <audio mode> indicatingaudio mode of the stream denotes monaural mode when set to 0, stereomode when set to 1, or bilingual mode when set to 2. The part <channelcaption> stands for the channel name.

[0267] A “live lost” message is an asynchronous message described as“LiveLost: <cause>” indicating that the stream transmission could not besustained and is now lost. The part <cause> denotes the cause of thefailure to continue the stream transmission. Given the live lostmessage, the client program 131 must issue either a live pause commandor a live stop command.

[0268] A “live available” message is an asynchronous message describedas “LiveAvailable” indicating that the interrupted stream transmissionis again available. Upon receipt of the live available message, theclient program 131 may transmit a live resume command to the imageserver program 86 to resume stream reception.

[0269] A “live error” message is an asynchronous message described as“LiveError: <cause>” indicating that some error in the server 1interrupted continuous stream transmission and has brought it to an end.The part <cause> denotes the cause of the failure to continue the streamtransmission. On receiving the live error message, the client program131 must issue a live stop command to terminate reception of the stream.

[0270] A “mode change” message is an asynchronous message described as“ModeChange: <pos> <audio mode> CH=<channel caption>” indicating thatthe audio mode or the channel of the currently received stream has beenchanged. The part <pos> represents the time of the change inmilliseconds (e.g., time corresponding to PTS (presentation time stamp)of an MPEG stream). The part <audio mode> indicating audio mode of thestream denotes monaural mode when set to 0, stereo mode when set to 1,or bilingual mode when set to 2. The part <channel caption> stands forthe channel name.

[0271] Below is a description of chat-related commands and messagestransmitted or received by the chat server program 87 or chat program132. Described first are the commands for allowing users to chat withone another while connecting to the server 1. There are restrictions onthe chat function: users cannot designate any specific personal computer2 as the destination to which to transmit character strings. Thetransmitted character strings are broadcast to all personal computers 2furnished with an active chat function. The character stringstransmitted by use of the chat function are forwarded from the server 1to personal computers 2 acting as clients, in asynchronous relation withthe responses to the executed commands.

[0272] A “chat active” command is described as “ChatActive.” The chatactive command is used to activate the chat function. Any personalcomputer 2 with its chat function activated can chat with other personalcomputers 2 having the same function. A chat command, to be describedlater, is executed in order to transmit a chat message. The messagetransmitted by use of the chat command is forwarded from the server 1 toall personal computers 2 including the message-transmitting personalcomputer.

[0273] On receiving the chat active command, the chat server program 87transmits a response “ChatActive” to the chat program 132. Thereafter,the chat server program 87 transmits a chat message “ChatUser: <usernum>” and “Chat: <message>” to the chat program 132. The part <user num>denotes the number of clients with their chat functions activated, andthe part <message> represents the chat message.

[0274] A “chat” command is described as “Chat <message strings>.” Thepart <message strings> stands for a transmitted message composed ofcharacter strings.

[0275] The chat command, when executed, transmits the chat message toall clients whose chat functions are activated. Prior to execution ofthe chat command, the chat active command must be carried out to enablethe chat function. The transmitted chat message is also fed to themessage-transmitting personal computer as a chat asynchronous message.

[0276] The chat message is an asynchronous message described as “Chat<message strings>” indicating that a client with its chat functionactivated has transmitted a message. The part <message strings>represents a transmitted message made up of character strings. Thetransmitted chat message is also fed to the message-transmittingpersonal computer as an asynchronous message.

[0277] What follows is a description of what takes place when a personalcomputer 2 as a client connects to the server 1 via the network 3 andreceives a content representative of a TV program being broadcast by theserver 1.

[0278]FIG. 7 schematically shows a dialog box displayed on the displayunit 110 by the client program 131 when the program 131 is booted. Thisdialog box is used to select a desired server 1 to connect to.

[0279] The dialog box for connecting to the desired server 1 includes: acombo box 151 into which to enter the name of the target server 1, atext box 152 to which to input a password, and a check box 153 used tospecify whether or not to connect automatically to the server 1 nexttime the client program 131 is booted.

[0280] Clicking on an arrow to the right-hand side of the combo box 151extends the box as shown in FIG. 8 on the display unit 110.

[0281] The client program 131 displays a list of server names coveringthe servers 1-1 through 1-M in a downward direction of the combo box151. The names of the servers 1-1 through 1-M are acquired by the clientprogram 131 executing the suitable commands discussed above.

[0282] In FIG. 8, for example, a server name “NABE7310” corresponds tothe server 1-1, “naber1” to the server 1-2, “CARBON” to the server 1-3,and “NABERX52” to the server 1-4.

[0283] Suppose that the name “NABE7310” is selected from the list in thecombo box 151, that a suitable password is input to the text box 152,and that a button named “CONNECT” is clicked in the dialog box. Thiscauses the client program 131 to connect to the server 1-1 over thenetwork 3 so as to receive an image and sound data content representinga TV program on a specific channel.

[0284]FIG. 9 schematically shows a window displayed on the display unit110 by the client program 131 based on the content composed of imagedata and sound data corresponding to the TV program on a particularchannel. On the display unit 110, the client program 131 displays notonly the images representative of the TV program received from theserver 1-1 but also buttons for selecting channels as well as buttonsfor adjusting sound levels.

[0285] Suppose now that the check box 153 is checked in the dialog boxfor selecting the target server 1 and that the button named “CONNECT” isclicked, as shown in FIG. 10. This causes the client program 131 to setan automatic connection flag for a value specifying that the server 1 beconnected automatically.

[0286]FIG. 11 schematically shows what the client program 131 does inconnecting to the server 1 when the automatic connection flag is set fora value denying automatic connection to the server 1.

[0287] If the client program 131 is booted with the automatic connectionflag set for the value denying automatic connection to the server 1, thedialog box for selecting the target server 1 is first displayed on thedisplay unit 110. When the name of the server 1 and the password areentered into the dialog box, the client program 131 connects to theselected server 1 accordingly. Under control of the client program 131,the display unit 110 then displays images corresponding to the TVprogram on the appropriate channel received from the connected server 1and the speakers 113 reproduce sounds associated with the program.

[0288]FIG. 12 schematically shows what the client program 131 does inconnecting to the server 1 when the automatic connection flag is set forthe value specifying automatic connection to the server 1.

[0289] The client program 131 connects to the server 1 in accordancewith a previously stored server name and password. Under control of theclient program 131, the display unit 110 then displays imagescorresponding to the TV program on the predetermined channel receivedfrom the connected server 1 and the speakers 113 reproduce soundsassociated with the program.

[0290] Where the automatic connection flag is set for the valuespecifying automatic connection to the server 1, the client program 131does not display the dialog box for selecting the target server 1.

[0291] If a “cancel automatic connection” command is selected from the“Set” menu as shown in FIG. 13, the client program 131 sets theautomatic connection flag for the value denying automatic connection tothe server 1.

[0292]FIG. 14 is a flowchart of steps constituting a connection datastoring process carried out when the button named “CONNECT” is clickedin the dialog box for selecting the desired server 1.

[0293] In step S11, the client program 131 acquires from the dialog boxthe settings for connecting to the server 1. Illustratively, the clientprogram 131 acquires from the combo box 151 the name of the server 1 toconnect to, gets the password from the text box 152, and obtains fromthe check box 153 the setting specifying whether or not to connectautomatically to the server 1.

[0294] In step S12, the client program 131 judges whether the settingobtained from the check box 153 specifies automatic connection to theserver 1. If automatic connection to the server 1 is judged specified,then it is necessary to store data required for the automaticconnection. In that case, step S13 is reached in which the name of theserver 1 obtained from the combo box 151 in the dialog box is stored aspart of connection data.

[0295] In step S14, the client program 131 stores as other connectiondata the password acquired from the text box 152 in the dialog box.

[0296] In step S15, the client program 131 sets the automatic connectionflag for the value (other connection data) specifying automaticconnection to the server 1.

[0297] In step S16, the client program 131 judges whether the user hasrequested termination of the program 131 on the basis of a selected menucommand or a clicked button on the display unit 110. If termination ofthe client program 131 is not judged requested, step S16 is reachedagain. The judgment is repeated until termination of the client program131 is judged requested.

[0298] When termination of the client program 131 is judged requested instep S16, step S17 is reached. In step S17, the client program 131stores connection data made up of the channel of the TV program whosecontent is being received from the server 1, and terminates theprocessing. With the client program 131 terminated, the automaticconnection flag, name of the server 1, password, and channel data areillustratively stored as the connection data. As another part of theconnection data, it is also possible to store different data requiredfor connecting to the server 1, such as a connection route to the server1.

[0299] If in step S12 the acquired setting is not judged to specifyautomatic connection to the server 1, then there is no need to storedata for automatically connecting to the server 1. In that case, stepS18 is reached without the server name and the password being stored. Instep S18, the client program 131 sets the automatic connection flag forthe value (connection data) denying automatic connection to the server1, and terminates the processing.

[0300] As described, the client program 131 judges whether the automaticconnection flag is set for automatic connection to the server 1. If theautomatic connection flag is judged set for automatic connection to theserver 1, then the client program 131 stores the name of the server 1and the password as necessary data for automatically connecting to theserver 1.

[0301]FIG. 15 is a flowchart of steps performed by the client program131 in connecting to the server 1. In step S31, the client program 131retrieves the connection data stored during the process discussed abovewith reference to the flowchart of FIG. 14. In step S32, the clientprogram 131 judges whether the retrieved connection data include theautomatic connection flag set for automatic connection to the server 1.If the automatic connection flag is judged set for the automaticconnection, then step S33 is reached. In step S33, the client program131 connects to the server 1 over the network 3 in accordance with theserver name and password included in the connection data.

[0302] In step S34, the client program 131 requests the server 1 tochange to a particular channel based on the channel data included in theconnection data. Step S34 is followed by step S35.

[0303] In step S35, the client program 131 receives from the server 1 acontent made up of image data and sound data representing the TV programon the predetermined channel.

[0304] In step S36, the client program 131 displays images and outputssounds reflecting the received content. More specifically, the clientprogram 131 displays images of the program on the display unit 110 andoutputs sounds of the program through the speakers 113, and terminatesthe processing.

[0305] If in step S32 the automatic connection flag is not judged setfor automatic connection to the server 1, then the client program 131will connect to the server 1 not on the basis of the connection data butin keeping with the data to be set in the dialog box. The client program131 thus displays the dialog box on the display unit 110.

[0306] In step S38, the client program 131 acquires the name of theserver 1 from the combo box 151 and obtains the password from the textbox 152 in the dialog box.

[0307] In step S39, the client program 131 connects to the server 1based on the acquired server name and password. Step S39 is followed bystep S35 in which image data and sound data are received from the server1.

[0308] As described, where the automatic connection flag in the storedconnection data is found set for automatic connection to the server 1,the client program 131 connects to the suitable server 1 based on thestored server name and password and requests the connected server 1 tochange to a predetermined channel. This allows the user to connect tothe desired server 1 and to view the TV program on the appropriatechannel without going through the chore of making entries into thedialog box.

[0309] Below is a description of how the chat program 132 is booted whenconnection with the server 1 is established. Suppose that a personalcomputer 2-1 acting as a client is receiving a content composed of theTV program on a particular channel from the server 1 over the network 3as shown in FIG. 16, and that a personal computer 2-2 as another clientconnects to the server 1 to start receiving a program content over thenetwork 3 depicted in FIG. 17. In that case, a chat program 132-1 isbooted on the personal computer 2-1 as illustrated in FIG. 18.

[0310] A chat program 132-2 is also booted on the personal computer 2-2.

[0311] As shown in FIG. 19, the chat program 132-1 on the personalcomputer 2-1 causes a display unit 110-1 to display the text entered bythe user of the personal computer 2-1 operating a keyboard 108-1 and thetext which is received from the chat server program 87 in the server 1and which is acquired by the chat program 132-2 on the personal computer2-2. Likewise, the chat program 132-2 on the personal computer 2-2causes a display unit 110-2 to display the text entered by the user ofthe personal computer 2-2 operating a keyboard 108-2 and the text whichis received from the chat server program 87 in the server 1 and which isobtained by the chat program 132-1 on the personal computer 2-1.

[0312]FIGS. 20 and 21 are explanatory views showing how the chatprograms 132-1 and 132-2 are booted on the personal computers 2-1 and2-2 respectively.

[0313] If the client program 131-2 on the personal computer 2-2 requestsconnection with the image server program 86 in the server 1 as shown inFIG. 20, the image server program 86 checks to see if the contentrepresenting the TV program on a particular channel is already offeredto some other client.

[0314] If another client is judged already offered the same content, theimage server program 86 in the server 1 transmits a boot-up request to,say, the client program 131-1 on the personal computer 2-1 (which isalready receiving the content), requesting the client program 131-1 toboot the chat program 132-1. At the same time, the image server program86 in the server 1 transmits another boot-up request to the clientprogram 131-2 on the personal computer 2-2 that is theconnection-requesting client, prompting the client program 131-2 to bootthe chat program 132-2.

[0315] If some other client is judged already offered the contentrepresenting the TV channel on a specific channel, the image serverprogram 86 in the server 1 notifies the chat server program 87 that theclient program 131-1 on the personal computer 2-1 is requested to bootthe chat program 132-1 and that the client program 131-2 on the personalcomputer 2-2 is also requested to boot the chat program 132-2.

[0316] In the manner described and as shown in FIG. 21, the clientprogram 131-1 on the personal computer 2-1 boots the chat program 132-1and the client program 131-2 on the personal computer 2-2 boots the chatprogram 132-2.

[0317] In that setup, the chat program 132-1 and client program 131-2may chat with each other through the chat server program 87 in theserver 1.

[0318]FIG. 22 is a flowchart of steps constituting a chat programboot-up requesting process performed by the image server program 86 inthe server 1 requesting boot-up of the chat program 132 on the personalcomputer 2.

[0319] In step S51, the image server program 86 judges whether a requestis made for connection to the program 86 itself. If no such request isjudged to be made, step S51 is reached again. The judgment is repeateduntil a request is detected for connection to the image server program86.

[0320] If in step S51 the request is detected for connection to theimage server program 86, step S52 is reached. In step S52, the imageserver program 86 judges whether another client is being connected. Ifin step S52 some other client is judged already connected, that meansthe image server program 86 is connected to at least two clientsincluding the client having requested the connection in step S51. Inthat case, step S53 is reached in which the image server program 86requests each of these at least two clients including theconnection-requesting client to boot the chat program 132.

[0321] In step S54, the image server program 86 notifies the chat serverprogram 87 that each of the at least two clients including theconnection-requesting client is requested to boot the chat program 132.This terminates the processing of FIG. 22.

[0322] If in step S52 no other client is judged connected, then solelythe client having requested the connection in step S51 connects to theimage server program 86 and no chat takes place. In that case, steps S53and S54 are skipped and the processing of FIG. 22 is terminated.

[0323] As described, when two or more clients request connection withthe image server program 86, the program 86 requests each of the clientsto boot the chat program 132. The image server program 86 then informsthe chat server program 87 that each of the clients involved has beenrequested to boot the chat program 132.

[0324]FIG. 23 is a flowchart of steps performed by the client program131 on the personal computer 2 acting as a client in establishingconnection with the image server program 86.

[0325] In step S61, the client program 131 on the personal computer 2requests connection with the image server program 86 in the server 1over the network 3.

[0326] In step S62, the client program 131 on the personal computer 2judges whether the image server program 86 in the server 1 has requestedboot-up of the chat program 132. If that request is judged to be made bythe image server program 86, then step S63 is reached in which the chatprogram 132 is booted. After the chat program is booted, the processingis terminated.

[0327] If in step S62 the image server program 86 is not judged to haverequested boot-up of the chat program 132, then the client program 131terminates the processing without booting the chat program 132.

[0328] As described, when the client program 131 requests connectionwith the image server program 86, the client program 131 boots the chatprogram 132 in response to a boot-up request made in turn by the imageserver program 86. In this setup, users utilizing clients at separatelocations can communicate with one another while viewing the samecontent.

[0329] Although the image server program 86 and chat server program 87have been described above as executed by a single server 1, this is notlimitative of the invention. Alternatively, the image server program 86and the chat server program 87 may each be carried out by a separateserver. In that alternative setup, the chat program 132 when bootedconnects to a first server apart from a second server that executes theimage server program 86, the first server further running the chatserver program 87.

[0330] In the foregoing description, the chat program 132 was shownbooted in response to a chat program boot-up request from the imageserver program 86. Alternatively, the chat program 132 may be booted inadvance. In this case, the chat program 132 may illustratively be madeactive by the client program 131.

[0331] What follows is a description of how the image server program 86prioritizes the personal computers 2 configured as clients so as toaccept a channel change request only from the client with a specificpriority.

[0332]FIG. 24 is a tabular view listing priority data about clients, thedata being retained by the image server program 86. In the priority dataof FIG. 24, client names are shown related to priorities.

[0333] Illustratively in FIG. 24, a client named “AAA” corresponds to apersonal computer 2-1, a client “BBB” to a personal computer 2-2, aclient “CCC” to a personal computer 2-3, and so on.

[0334] In the example of FIG. 24, a priority “1” attached to a client'sname signifies that the channel change request made thereby isacceptable, and a priority “2” means that the channel change request isnot accepted. In the description that follows, the priority “1” may becalled the high priority and the priority “2” the low priority whereappropriate.

[0335] For example, if the personal computer 2-1 is the first to connectto the image server program 86, the image server program 86 associatesthe name of the personal computer 2-1 with the priority for acceptingthe channel change request. When the second and subsequent personalcomputers 2-2, etc., connect to the image server program 86, the imageserver program 86 associates the names of these personal computers withthe priority for rejecting the channel change request.

[0336] In response to a channel change request from the personalcomputer 2-1, the image server program 86 changes the channelaccordingly. Given the channel change request from the personal computer2-2, 2-3, etc., the image server program 86 will reject the request andwill not change the channel.

[0337]FIG. 25 is a flowchart of steps constituting a channel changingprocess performed by the image server program 86. In step S71, the imageserver program 86 judges whether the personal computer 2 has made achannel change request based on the data transmitted from the personalcomputer 2 over the network 3. If the personal computer 2 is not judgedto have made a channel change request, step S71 is reached again and thejudgment is repeated.

[0338] If in step S71 the personal computer 2 is judged to have made achannel change request, step S72 is reached. In step S72, the imageserver program 86 acquires the name of the requesting personal computeras a client based on the command transmitted from the personal computer2 over the network 3.

[0339] In step S73, the image server program 86 acquires the priority ofthe client based on the acquired name of the requesting personalcomputer and in keeping with the previously stored priority data aboutindividual clients.

[0340] In step S74, the image server program 86 judges whether thechannel change request is acceptable in accordance with the acquiredpriority of the client. Illustratively, if the priority is judged to be“1” permitting acceptance of a channel change request as shown in FIG.24, step S75 is reached. In step S75, the channel is changed by honoringthe channel change request from the client, and the processing isterminated.

[0341] If in step S74 the priority is judged to be “2” rejecting thechannel change request as shown in FIG. 24, then the channel remainsunchanged, and the processing is terminated.

[0342] As described, the image server program 86 accepts the channelchange request only from the client having a specific priority based onthe predetermined priority data. Channel change requests from otherclients with different priorities will not be honored.

[0343]FIG. 26 is a flowchart of steps constituting a priority changingprocess performed by the image server program 86. In step S81, the imageserver program 86 judges whether a priority-raising request is made bythe personal computer 2 configured as a client based on the datatransmitted over the network 3. If no such request is judged to be made,step S81 is reached again and the judgment is repeated until apriority-raising request is detected.

[0344] If in step S81 a priority-raising request is judged to be made,step S82 is reached in which the image server program 86 requestspermission of a priority change from another client with the highpriority. For example, the image server program 86 searches for a clienthaving the priority “1” based on the priority data. The client with thepriority “1”, when detected, is requested to change its priority.

[0345] In step S83, the image server program 86 judges whether apriority change is permitted based on the response from thehigh-priority client requested to change its priority. If the prioritychange is judged permitted, then the priority data are modified in sucha manner the client making the priority-raising request is granted thehigh priority and the client permitting the priority change is assignedthe low priority. Then the processing is terminated. In FIG. 24, forexample, the client “AAA” is now given the priority “2” while the client“BBB” is granted the priority “1.”

[0346] If in step S83 the priority change is not judged to be permitted,then the image server program 86 terminates the processing withoutmodifying the priority data.

[0347] As described, when the client having the high priority agrees toa priority change, the image server program 86 modifies the prioritydata as desired by the requesting client. Alternatively, all clients maybe allowed to request channel changes.

[0348]FIG. 27 is an explanatory view of a process in which a clientacquires the versions of the image server programs 86 in the servers 1so as to select a particular server 1 having a server program versioncorresponding to specific functions.

[0349] The client program 131 on the personal computer 2 acting as aclient requests the image server program 86-1 in the server 1-1 toreport the version of the program 86-1. In response to the request fromthe client program 131, the image server program 86-1 in the server 1-1reports its version to the client program 131 over the network 3.

[0350] Based on the version report from the image server program 86-1,the client program 131 references previously stored function data 181 tofind the functions of the image server program 86-1.

[0351] The functions of the image server program 86-1 may include: afunction of recording contents and offering recorded contents as files;a function of receiving a TV program on a specific channel and offeringa content stream representing the received program; and a function ofoffering a single recorded content as a plurality of content streams todifferent clients. The multiple content streams may comprise alow-bit-rate stream, a high-bit-rate stream, an MPEG-1/MPEG-2 stream,and other streams of different coding methods.

[0352] The client program 131 on the personal computer 2 also requestsover the network 3 the image server program 86-2 in the server 1-2 toreport the version of the program 86-2. In response to the request fromthe client program 131, the image server program 86-2 in the server 1-2reports its version to the client program 131 over the network 3.

[0353] Based on the version report from the image server program 86-2,the client program 131 references the previously stored function data181 to find the functions of the image server program 86-2.

[0354]FIG. 28 is a tabular view listing typical function data 181. Thefunction data 181 comprise different versions of the image serverprogram 86 in list form in conjunction with the names of the functionscorresponding to the different versions.

[0355] Illustratively in FIG. 28, a version “1” of the image serverprogram 86 is shown associated with a function named “recording.” The“recording” function involves recording contents and offering therecorded contents as files.

[0356] Also, a version “2” of the image server program 86 is showncorresponding to functions named “recording” and “tuner.” The “tuner”function involves receiving a TV program on a particular channel andoffering a content stream representing the received program. That is,the image server program 86 of the version “2” is capable of recordingcontents and offering the recorded contents as files, or of receiving aTV program on a specific channel and offering a content streamrepresentative of the received program. Because the image versionprogram 86 of the version “2” can offer a TV program content as astream, it can provide a stream of any recorded content to a client.

[0357] Furthermore, a version “3” of the image server program 86 isshown listed in conjunction with functions named “recording,” “tuner,”and “multiple streams.” The “multiple streams” function involvesoffering any one of recorded contents as a plurality of content streamsto multiple clients. That is, the image server program 86 of the version“3” is capable of recording contents and offering the recorded contentsas files; receiving a TV program on a specific channel and offering acontent stream representative of the received program; or offering anyone of recorded contents as a plurality of streams to multiple clients.

[0358] As described, given version reports from the image serverprograms 86 in various servers 1, the client program 131 recognizes thefunctions of these programs 86. With the available functions of theimage server programs 86 thus recognized, the client program can selectone of the multiple servers 1 running the programs 86.

[0359]FIG. 29 is a flowchart of steps constituting content (image data)transmitting and receiving processes performed by the personal computer2 running the client program 131 and by the server 1 running the imageserver program 86.

[0360] In step S1001, the client program on the personal computer 2transmits over the network 3 a version request to the image serverprograms 86-1 and 86-2 in the servers 1-1 and 1-2 respectively.Alternatively, the client program 131 may broadcast the version requestall over the network.

[0361] In step S2001, the image server program 86-1 in the server 1-1receives the version request from the personal computer 2. In stepS2002, the image server program 86-1 transmits its version data to thepersonal computer 2 over the network 3.

[0362] In step S1002, the client program 131 receives the version datafrom the server 1-1 over the network 3, the version data indicating theversion of the image server program 86-1.

[0363] In step S3001, the image server program 86-2 in the server 1-2receives the version request from the personal computer 2. In stepS3002, the image server program 86-2 transmits its version data to thepersonal computer 2 over the network 3.

[0364] In step S1003, the client program 131 receives the version datafrom the server 1-2 over the network 3, the version data indicating theversion of the image server program 86-2.

[0365] In step S1004, the client program 131 acquires the names ofavailable functions with each server 1 based on the version data and thefunction data 181 obtained in steps S1002 and S1003 above. Morespecifically, given the version data from the image server program 86-1,the client program 131 searches the function data 181 for the functionnames corresponding to the version of the image server program 86-1.Also upon receipt of the version data from the image server program86-2, the client program 131 searches the function data 181 for thefunction names associated with the version of the image server program86-2.

[0366] In step S1005, the client program 131 selects the server 1 to beconnected based on the acquired names of the functions with the servers1-1 and 1-2. The client program 131 can select the server 1 that is mostsuited to offer the desired service. For example, if it is desired toreproduce a TV program on a particular channel, then the client program131 selects the server 1 which receives that TV program on the specificchannel and provides a content stream representing the received program.

[0367] In step S1006, the client program 131 transmits a connectionrequest to the selected server 1 such as the server 1-2 over the network3.

[0368] In step S3003, the image server program 86-2 receives theconnection request from the personal computer 2. In step S3004, theimage server program 86-2 transmits image data (i.e., content) to thepersonal computer 2 over the network 3.

[0369] In step S1007, the client program 131 receives the content (imagedata) from the server 1-2. In step S1008, the client program 131displays images based on the received content on the display unit 110,and the processing is terminated.

[0370] In the manner described, the client program 131 can select theserver 1 in accordance with the desired type of service, i.e., theserver 1 from which to receive the desired content.

[0371]FIG. 30 is a block diagram depicting a structure of the clientprogram 131 that reproduces a stream fed from the server 1 withoutdeleting image frames.

[0372] Illustratively in FIG. 30, the client program 131 includes abuffer 191, a reproduction program 192, and a reproduction monitoringprogram 193.

[0373] The buffer 191 is a first-in first-out (FIFO) buffer thattemporarily accommodates an image data stream such as an MPEG streamcoming from the server 1 over the network 3. The buffered image data areforwarded to the reproduction program 192.

[0374] The reproduction program 192 decodes the image data held in thebuffer 191 while adjusting the reproduction speed under control of thereproduction monitoring program 193. The decoded image data aredisplayed on the display unit 110.

[0375] Based on the amount of image data retained in the buffer 191, thereproduction monitoring program 193 instructs the reproduction program192 to adjust the reproduction speed.

[0376] Described below with reference to FIG. 31 is a more detailedprocess performed by the client program 131 in reproducing imagesderived from a stream coming from the server 1. Where the client program131 is to receive a TV program stream from the server 1 in order toreproduce images of the received program, it is desirable to minimizethe amount of the image data being held in the buffer 191 and to keepthe data amount constant for optimal real-time reproduction.

[0377] Suppose that while the client program 131 is carrying out thereproduction process under control of a multitask OS such as Windows(registered trademark), a task of another program starts gettingexecuted. In that case, some resources of the CPU 101 can beappropriated for the second program, which can interrupt thereproduction process of the client program 131. This leads to a growingamount of image data retained in the buffer 191.

[0378] The bottleneck above is circumvented by the client program 131 onthe personal computer 2 according to this invention. Specifically, theclient program 131 monitors at regular intervals the amount of the imagedata held in the buffer 191 and adjusts the reproduction speed in amanner reflecting the monitored image data amount. This makes itpossible to minimize the amount of the image data in the buffer 191 andto keep the data amount constant.

[0379] Packets containing image data and sent from the server 1 arereceived by the network interface card 115 of the personal computer 2.The network interface card 115 extracts image data from the receivedpackets and supplies the extracted data to the buffer 191.

[0380] The buffer 191 accommodates the image data coming from thenetwork interface card 115.

[0381] The reproduction monitoring program 193 queries the buffer 191periodically (i.e., a number of times a second) to find the amount ofcurrently buffered image data. In response to the query from thereproduction monitoring program 193, the buffer 191 reports the amountof the currently held image data to the program 193.

[0382] On the basis of the reported amount of the image data currentlyretained in the buffer 191, the reproduction monitoring program 193requests the reproduction program 192 to adjust the reproduction speed.

[0383] Illustratively, if the image data currently accommodated by thebuffer 191 exceed the amount of data corresponding to a three-secondreproduction, the reproduction monitoring program 193 requests thereproduction program 192 to reproduce at 1.05 times the standard speed.The modest change to 1.05× speed is intended to minimize any visualawkwardness on the part of users watching the images being reproduced.

[0384] If the currently retained image data in the buffer 191 fall shortof the amount of data corresponding to a one-second reproduction, thereproduction monitoring program 193 requests the reproduction program192 to reproduce images at 1.00× speed.

[0385] The threshold data quantity for 1.05× speed is made different, itshould be noted, from that for 1.00× speed. If the threshold value werethe same, the reproduction at 1.00× speed and reproduction at 1.05×speed would reciprocate at short intervals giving an awkward visualexperience to the users watching the images being reproduced.

[0386]FIG. 32 is a flowchart of steps constituting a reproduction speedchanging process performed by the client program 131. In step S101, thereproduction monitoring program 193 in the client program 131 judgeswhether a predetermined time period has elapsed based on time data fedfrom an RTC, not shown. If the predetermined time period is not judgedto have elapsed, step S101 is reached again, and the judgment isrepeated until the time period is found to have passed.

[0387] If in step S101 the predetermined time period is judged to havepassed, step S102 is reached. In step S102, the reproduction monitoringprogram 193 judges whether the current reproduction speed of thereproduction program 192 is 1.05× speed.

[0388] If in step S102 the current reproduction speed of thereproduction program 192 is judged to be 1.05× speed, step S103 isreached. In step S103, the reproduction monitoring program 193 queriesthe buffer 191 to find the amount of the currently accommodated imagedata therein. Based on the amount of image data reported from the buffer191, the reproduction monitoring program 193 judges whether the delaytime is less than one second. In other words, the reproductionmonitoring program 193 checks to see whether the image data in thebuffer 191 fall short of the amount of data corresponding to aone-second reproduction.

[0389] If in step S103 the delay time is judged to be less than onesecond, that means the amount of the image data being held in the buffer191 is appropriate and that the buffered data should not be reducedfurther in quantity. In this case, step S104 is reached in which thereproduction monitoring program 193 sets the reproduction program 192for 1.00× reproduction speed. Control is then returned to step S101, andthe subsequent steps are repeated.

[0390] If in step S103 the delay time is not judged to be less than onesecond, that means it is necessary to reduce the amount of the imagedata in the buffer 191. In this case, control is returned to step S101with the reproduction speed kept unchanged at 1.05× speed. Thesubsequent steps are then repeated.

[0391] If in step S102 the current reproduction speed of thereproduction program 192 is not judged to be 1.05× speed, step S105 isreached. In step S105, the reproduction monitoring program 193 queriesthe buffer 191 to find the amount of the image data retained therein.Based on the amount of image data reported from the buffer 191, thereproduction monitoring program 193 judges whether the delay timeexceeds three seconds. That is, the reproduction monitoring program 193determines whether the image data being held in the buffer 191 exceedthe amount of data corresponding to a three-second reproduction.

[0392] If in step S105 the delay time is judged to exceed three seconds,that means the amount of the image data in the buffer 191 is excessive.In this case, step S106 is reached in which the reproduction monitoringprogram 193 sets the reproduction program 192 for 1.05× reproductionspeed. Control is then returned to step S101 and the subsequent stepsare repeated.

[0393] If in step S105 the delay time is not judged to exceed threeseconds, that means the amount of the image data in the buffer 191 isappropriate. In this case, control is returned to step S101 with thereproduction speed kept unchanged at 1.00× speed. The subsequent stepsare then repeated.

[0394] As described, the client program 131 periodically checks thebuffer 191 for the amount of image data retained therein. Given thereport of the image data amount from the buffer 191, the client program131 adjusts the reproduction speed accordingly. The process makes itpossible to minimize the amount of the image data in the buffer 191 andto keep the data amount therein constant. The client program 131 canthus reproduce images in real time based on the received stream withoutdeleting image frames.

[0395] The client program 131 may alternatively change the reproductionspeed in finer increments. For example, if the buffer 191 is judged toretain the amount of image data corresponding to a 0.5-secondreproduction, the client program 131 may set reproduction for 1.01×speed; with the buffer 191 holding the amount of image datacorresponding to a 1.0-second reproduction, the client program 131 mayswitch to 1.02× speed; with the buffer 191 retaining the image datalarge enough to represent a 1.5-second reproduction, the client program131 may set 1.03× reproduction speed. These steps will further reducethe fluctuation in the amount of the image data accommodated in thebuffer 191.

[0396] As another alternative, if the buffer 191 is judged to hold imagedata exceeding a predetermined amount, the client program 131 may erasethe image data while changing the reproduction speed at the same time.

[0397] As a further alternative, if the buffer 191 is judged to retainthe image data in a quantity below a predetermined threshold level, theclient program 131 may set a reproduction speed less than 1.0× speed.

[0398] As yet another alternative, the reproduction monitoring program193 may change the time intervals at which to query the buffer 191 forthe amount of retained data therein, in keeping with the data amountreport from the buffer 191.

[0399] Although the reproduction monitoring program 193 was describedabove as setting the reproduction speed upon comparison of the amount ofdata reported from the buffer 191 with a predetermined thresholdquantity, this is not limitative of the invention. Alternatively, thereproduction monitoring program 193 may compute the reproduction speedto be set by applying a suitable function to the reported data amount.

[0400]FIG. 33 is a block diagram indicating a typical structure of acontent providing system practiced as the second embodiment of thisinvention. In the setup of FIG. 33, a personal computer 301 suppliesimage and sound signals in analog or digital format to a monitor 302.The analog image signal fed to the monitor 302 from the personalcomputer 301 may illustratively be an NTSC (National Television SystemCommittee) composite signal or RGB (Red, Green, Blue) component signals.The digital image signal supplied to the monitor 302 from the personalcomputer 301 may illustratively be an SDI (Serial Digital Interface) oran SMPTE (Society of Motion Picture and Television Engineers) 259Mcomposite digital video signal or component digital video signals.

[0401] The monitor 302 displays images and outputs sounds based on theimage and sound signals sent from the personal computer 301.

[0402] A VCR (video cassette recorder) 303 records images and sounds toa video cassette tape loaded therein, and retrieves recorded images andsounds from the loaded video cassette tape. The VCR 303 supplies thepersonal computer 301 with a composite video signal corresponding to theretrieved images and with signals representing the retrieved sounds.

[0403] The personal computer 301 records contents made up of image andsound data, and receives TV programs being broadcast.

[0404] The image signal fed by the personal computer 301 to the monitor302 is either an image signal representing the content recorded in thepersonal computer 301, or an image signal corresponding to the TVprogram being received by the personal computer 301.

[0405] Given the image and sound signals from the VCR 303 or othersources, the personal computer 301 generates illustratively MPEG imagedata and sound data and records the generated image and sound data ascontents. Also, the personal computer 301 decodes signals from anantenna, not shown, which receives terrestrial or satellite-relatedradio waves of a TV program from a TV station and generates image andsound data representing the program thus received.

[0406] On supplying the monitor 302 with an image signal correspondingto a recorded content, the personal computer 301 illustrativelygenerates an analog video signal representative of the content inquestion. The analog video signal thus generated is sent to the monitor302.

[0407] Furthermore, the personal computer 301 feeds the monitor 302 withan analog video signal corresponding to a received TV program.

[0408]FIG. 34 is a block diagram representing a typical structure of thepersonal computer 301. In the setup of FIG. 34, a CPU 321 executes an OSand application programs on the personal computer 301. A ROM 322accommodates basically fixed data as part of the programs and operationparameters used by the CPU 321. A RAM 323 stores programs executed bythe CPU 321 and parameters that are varied as needed during theexecution. These component parts are interconnected by a host bus 324.

[0409] The host bus 324 is connected via a bridge 325 to an external bus326 such as a PCT bus.

[0410] A keyboard 328 is operated by a user to enter various commandsinto the CPU 321. A mouse 329 is manipulated by the user to point to andselect items on a display unit 330. The display unit 330 is constitutedby a CRT or a liquid crystal display displaying diverse kinds ofinformation in text and image. A hard disc drive (HDD) 331 and a floppy(registered trademark) disc drive 332 drive a hard disc and a floppydisc respectively so that programs and information to be handled by theCPU 321 may be written to or read from the disc in question. Speakers333 are provided to reproduce sounds.

[0411] A drive 334 reads programs or data from a magnetic disc 341, anoptical disc 342, a magneto-optical disc 343, or a semiconductor memory344 loaded in the drive 334. The retrieved programs or data are suppliedto the HDD 331 or RAM 323.

[0412] The components ranging from the keyboard 328 to the drive 334 areconnected to an interface 327. In turn, the interface 327 is connectedto the CPU 321 via the external bus 326, bridge 325, and host bus 324.

[0413] An image processing board 335 under control of the CPU 321generates image and sound data based on signals coming from an antenna,not shown, the generated data being representative of broadcast programsthat have been captured by the antenna. The image and sound data areoutput to the HDD 331 over the external bus 326 and through theinterface 327.

[0414] The image processing board 335 under control of the CPU 321generates image and sound data based on signals coming from the VCR 303.The image and sound data thus generated are output to the HDD 331 overthe external bus 326 and through the interface 327.

[0415] Further under control of the CPU 321, the image processing board335 generates image and sound analog signals based on signals comingfrom the antenna, not shown. The generated image and sound analogsignals representative of a received TV program are sent to the monitor302.

[0416] Also under control of the CPU 321, the image processing board 335acquires contents made up of image and sound data from the HDD 331 viathe external bus 326 and interface 327 in order to generate image andsound analog signals reflecting the acquired image and sound data. Theanalog signals thus generated are supplied to the monitor 302.

[0417] The image processing board 335 is connected to the CPU 321 viathe external bus 326, bridge 325, and host bus 324.

[0418]FIG. 35 is a block diagram expressing a typical structure of theimage processing board 335 as it inputs and outputs composite videosignals. In the setup of FIG. 35, a tuner 351 acquires externallysupplied TV broadcast signals under control of the CPU 321 and selectsthe broadcast program on a particular channel out of a plurality of TVchannels. The tuner 351 then supplies an A/D converter 352 with analogsignals representing the images and sounds of the TV program on theselected channel.

[0419] The A/D converter 352 converts the image and sound analog signalsrepresentative of the program images and sounds into digital signals,and outputs the converted digital signals to a selector 353.

[0420] An APS (Analog Protection System) signal detection unit 354acquires an analog composite video signal from the VCR 303 and detectsan APS signal from the acquired video signal. The APS signal is insertedinto the composite video signal for copy control purposes illustrativelythrough the use of the Copy Protection System of Macrovision Corporation(U.S.A.) . When the composite video signal is judged to contain the APSsignal, the APS signal detection unit 354 supplies a bridge 357 withjudgment data indicating the presence of the APS signal in the compositevideo signal. Where the composite video signal is not judged to containthe APS signal, the APS signal detection unit 354 feeds the bridge 357with judgment data indicating the absence of the ASP signal in thecomposite video signal.

[0421] The APS signal detection unit 354 supplies an A/D converter 355with the analog composite video signal coming from the VCR 303.

[0422] The A/D converter 355 converts the analog composite video signalfrom the APS signal detection unit 354 into a digital signal, andsupplies the converted digital signal to the selector 353.

[0423] Under control of the CPU 321, the selector 353 selects either thedigital signal coming from the A/D converter 352 or the digital signalfrom the A/D converter 355, and sends the selected digital signal to anencoder 356 or to the bridge 357.

[0424] When a TV program is to be recorded to the HDD 331, the selector353 supplies the encoder 356 with the digital signal coming from the A/Dconverter 352. Where the TV program is to be reproduced on the displayunit 330 and through the speakers 333 or where the analog signalrepresentative of the TV program is to be fed to the monitor 302, theselector 353 supplies the bridge 357 with the digital signal coming fromthe A/D converter 352.

[0425] Where the TV program is to be recorded to the HDD 311 while beingreproduced on the display unit 330 and through the speakers 333simultaneously, or where the analog signal representing the TV programis to be fed to the monitor 302, the selector 353 supplies both theencoder 356 and the bridge 357 with the digital signal coming from theA/D converter 352.

[0426] When the image data corresponding to the analog signal from theVCR 303 are to be recorded to the HDD 331, the selector 353 supplies theencoder 356 with the digital signal coming from the A/D converter 355.Where the images representative of the analog signal from the VCR 303are to be reproduced on the display unit 330, or where an analog signalcorresponding to the one from the VCR 303 is to be fed to the monitor302, the selector 353 supplies the bridge 357 with the digital signalcoming from the A/D converter 355.

[0427] Where the image data representing the analog signal from the VCR303 are to be recorded to the HDD 331 while being reproduced in imageson the display unit 330 simultaneously, or where an analog signalcorresponding to the one from the VCR 303 is to be fed to the monitor302, the selector 353 supplies both the encoder 356 and the bridge 357with the digital signal coming from the A/D converter 355.

[0428] The encoder 356 encodes the digital signal from the selector 353using a suitable compression coding method such as MPEG, and suppliesthe encoded data to the bridge 357.

[0429] The decoder 358 may be fed with image and sound data that havebeen encoded by a predetermined compression coding method such as MPEGand held on the HDD 331. In that case, the decoder 358 decodes theencoded image and sound data from the HDD 331 and sends the decodeddigital signal to the bridge 357.

[0430] Where the encoded data representing the TV program orcorresponding to the composite video signal from the VCR 303 are to berecorded to the HDD 331, the bridge 357 sends to the HDD 331 the encodeddata from the encoder 356 over the external bus 326.

[0431] Where the TV program is to be reproduced on the display unit 330and through the speakers 333, the bridge 357 supplies the display unit330 with the digital image signal coming from the selector 353 over theexternal bus 326 and through the interface 327 while feeding thespeakers 333 with the digital sound signal via the external bus 326 andinterface 327.

[0432] Where the encoded data are to be reproduced from the HDD 331, thebridge 357 supplies the decoder 358 with the encoded data retrieved fromthe HDD 331. The bridge 357 supplies the display unit 330 with thedigital image data coming from the decoder 358 over the external bus 326and through the interface 327 while feeding the speakers 333 with thedigital sound signal via the external bus 326 and interface 327.

[0433] When reproducing a TV program, the display unit 330 displaysimages of the program in question using the digital signal fed throughthe interface 327 or based on an analog signal obtained throughconversion by a predetermined method.

[0434] When reproducing the TV program, the speakers 333 reproducesounds of the program using the digital signal fed via the interface 327or based on an analog signal obtained through conversion by apredetermined method.

[0435] Where images are to be displayed on the monitor 302, the bridge357 supplies a D/A (digital-to-analog) converter 359 with the digitalimage signal coming from the selector 353. The D/A converter 359converts the digital signal from the bridge 357 into an analog signalconstituted by component signals, and sends the analog signal to anencoder 360.

[0436] The encoder 360 converts the analog signal made up of componentsignals from the D/A converter 359, into an analog composite videosignal. The composite video signal thus created is fed to the monitor302.

[0437]FIG. 36 is an explanatory view of application programs performedby the personal computer 301. A recording/reproducing program 381 causesthe image processing board 335 to generate MPEG image data and sounddata in encoded form representing the TV program on a specific channelreceived by the tuner 351. The data thus encoded are recorded to the HDD331 by the recording/reproducing program 381.

[0438] Given the data from the image processing board 335, therecording/reproducing program 381 checks to see whether the APS signalis contained in the composite video signal coming from the VCR 303.

[0439] If the composite video signal from the VCR 303 is not judged tocontain the APS signal, the recording/reproducing program 381 causes theimage processing board 335 to convert the composite video signal fromthe VCR 303 into MPEG video data and sound data in encoded form andrecord the encoded data to the HDD 331.

[0440] If the composite video signal from the VCR 303 is judged tocontain the APS signal, then the recording/reproducing program 381 stopsthe recording of the composite video signal coming from the VCR 303.

[0441] The recording/reproducing program 381 causes the image processingboard 335 to decode contents retrieved from the HDD 331 so as togenerate uncompressed image and sound digital signals. The generateddigital signals are reproduced as images on the display unit 330 and assounds through the speakers 333. Also, the recording/reproducing program381 causes the image processing board 335 to decode contents retrievedfrom the HDD 331 so as to generate a composite video signal. Thecomposite video signal thus generated is supplied to the monitor 302.

[0442] The management/search program 382 causes the display unit 330 todisplay specific information such as details of contents recorded on theHDD 331 as well as dates and times at which such recordings were made.The management/search program 382 instructs the recording/reproducingprogram 381 to reproduce a specific content or to select a particularcontent to be edited. The management/search program 382 suppliesinformation on the selected content to an editing program 383 forediting purposes. Furthermore, the management/search program 382 givesan unattended recording instruction to an unattended recordingreservation program 384.

[0443] Based on the content data recorded on the HDD 331, the editingprogram 383 edits images and sounds of the selected content (i.e., someimages and sounds included in the specific content are put together) soas to generate content data in a predetermined format for reproductionof edited images and sounds.

[0444] Illustratively, a content in the predetermined format does notinclude digital image or sound data and is constituted instead byinformation for designating both the selected content and the images andsounds to be utilized. Such a content may be reproduced by therecording/reproducing program 381.

[0445] Given suitable settings, the unattended recording reservationprogram 384 reserves the content to be recorded unattended. The reservedcontent complies with the current settings in place (such as recordingtime and recording mode determining the image quality of recording) andis assigned a storage space beforehand on the HDD 331.

[0446] A reservation monitoring program 385 runs constantly when thepersonal computer 301 is in operation (i.e., the program 385 is residentwhile the OS is running). As such, the reservation monitoring program385 executes unattended recording of the content reserved by theunattended recording reservation program 384 in keeping with an RTC(real time clock), not shown. The reservation monitoring program 385also permits modifications of the settings of the content subject tounattended recording.

[0447] The reservation monitoring program 385 boots up therecording/reproducing program 381 if the program 381 is not active withsuitable settings in place and if unattended recording is started.

[0448]FIG. 37 is a block diagram showing a typical structure of the APSsignal detection unit 354. A signal detection unit 391 as part of theAPS signal detection unit 354 detects in each field an APS signal withan amplitude more than that of the ordinary black or white level, theAPS signal being included in the blanking part of the input compositevideo signal. Upon detection of the APS field in a given field, thesignal detection unit 391 supplies an evaluation value generation unit392 as another part of the APS signal detection unit 354 with a signalindicating the presence of the APS signal in the field in question. Ifno APS signal is detected in a given field, the signal detection unit391 furnishes the evaluation value generation unit 392 with a signalindicating the absence of the APS signal in that field.

[0449] On the basis of the signal coming from the signal detection unit391, the evaluation value generation unit 392 generates an evaluationvalue A that may be any one of 0 through 100.

[0450] Illustratively, given signals from the signal detection unit 391indicating the detection of the APS signal from five consecutive fieldsout of ten, the evaluation value generation unit 392 generates anevaluation value A of 80. When fed with signals from the signaldetection unit 391 indicating the detection of the APS signal from fivediscontinuous fields out of ten, the evaluation value generation unit392 generates an evaluation value A of 70. On receiving signals from thesignal detection unit 391 indicating the detection of the APS signalfrom four consecutive fields out of ten, the evaluation value generationunit 392 generates an evaluation value A of 60. Upon receipt of signalsfrom the signal detection unit 391 indicating the detection of the APSsignal from four discontinuous fields out of ten, the evaluation valuegeneration unit 392 generates an evaluation value A of 50.

[0451] The evaluation value generation unit 392 supplies the generatedevaluation value A to a judgment unit 395, another part of the APSsignal detection unit 354.

[0452] A signal detection unit 393 as another part of the APS signaldetection unit 354 detects the APS signal by a method different fromthat of the signal detection unit 391. Illustratively, the APS signaldetection unit 354 detects in each field an APS signal included in sucha manner that the color burst signal in the input composite video signaldiffers in phase from the ordinary color burst signal. Upon detection ofthe APS field in a given field, the signal detection unit 393 suppliesan evaluation value generation unit 394 as another part of the APSsignal detection unit 354 with a signal indicating the presence of theAPS signal in the field in question. If no APS signal is detected in agiven field, the signal detection unit 393 furnishes the evaluationvalue generation unit 394 with a signal indicating the absence of theAPS signal in that field.

[0453] On the basis of the signal coming from the signal detection unit393, the evaluation value generation unit 394 generates an evaluationvalue B that may be any one of 0 through 100.

[0454] Illustratively, given signals from the signal detection unit 393indicating the detection of the APS signal from ten consecutive fields,the evaluation value generation unit 394 generates an evaluation value Bof 80. When fed with signals from the signal detection unit 393indicating the detection of the APS signal from nine consecutive fields,the evaluation value generation unit 394 generates an evaluation value Bof 70. On receiving signals from the signal detection unit 393indicating the detection of the APS signal from eight consecutivefields, the evaluation value generation unit 394 generates an evaluationvalue B of 60. Upon receipt of signals from the signal detection unit393 indicating the detection of the APS signal from seven consecutivefields, the evaluation value generation unit 394 generates an evaluationvalue B of 50.

[0455] The evaluation value generation unit 394 supplies the generatedevaluation value B to the judgment unit 395.

[0456] On receiving the evaluation values A and B from the evaluationvalue generation units 392 and 394 respectively, the judgment unit 395judges whether the APS signal is included in the composite video signal,and outputs judgment data indicating the result of the judgment.

[0457] For example, if any one of the evaluation values A and B from theevaluation value generation units 392 and 394 is 80 or greater, thejudgment unit 395 judges that the APS signal is included in thecomposite video signal, and outputs judgment data indicating thepresence of the APS signal in the composite video signal. If one of theevaluation values A and B from the evaluation value generation units 392and 394 is at least 60 and the other evaluation value is at least 50,the judgment unit 395 also judges that the APS signal is included in thecomposite video signal, and outputs the judgment data indicating thepresence of the APS signal in the composite video signal.

[0458] Furthermore, if one of the evaluation values A and B from theevaluation value generation units 392 and 394 is at least 70 and theother evaluation value is at least 40, the judgment unit 395 also judgesthat the APS signal is included in the composite video signal, andoutputs the judgment data indicating the presence of the APS signal inthe composite video signal.

[0459]FIG. 38 is a flowchart of steps constituting an APS signaldetecting process carried out by the APS signal detection unit 354. Instep S301, the signal detection unit 391 detects in each field the APSsignal in accordance with the blanking level, and sends the result ofthe detection to the evaluation value generation unit 392. In step S302,the evaluation value generation unit 392 generates the evaluation valueA based on the result of the detection from the signal detection unit391. Specifically, the evaluation value generation unit 392 generatesthe evaluation value A on the basis of the number of consecutive fieldsin which the APS signal is detected, or based on the ratio of fieldscontaining the APS signal to a predetermined reference field count.

[0460] In step S303, the signal detection unit 393 detects in each fieldthe APS signal based on the phase of the color burst signal, andsupplies the result of the detection to the evaluation value generationunit 394. In step S304, the evaluation value generation unit 394generates the evaluation value B based on the result of the detectioncoming from the signal detection unit 393. Specifically, the evaluationvalue generation unit 394 generates the evaluation value B on the basisof the number of consecutive fields in which the APS signal is detected.

[0461] In step S305, given the evaluation values A and B from theevaluation value generation units 392 and 394, the judgment unit 395judges whether the APS signal is included in the composite video signal,and outputs judgment data indicating the result of the judgment. Theprocessing is then terminated.

[0462]FIG. 39 is a flowchart of steps constituting a judging processwhich corresponds to step S305 in FIG. 38 and which is performed by thejudgment unit 395. In step S311, the judgment unit 395 judges whetherthe evaluation value A is more than 80. If the evaluation value A isjudged to be more than 80, step S312 is reached. In step S312, thejudgment unit 395 outputs judgment data indicating the detection of theAPS signal, and terminates the processing.

[0463] If in step S311 the evaluation value A is not judged to be morethan 80, then step S313 is reached. In step S313, the judgment unit 395judges whether the evaluation value B is more than 80. If in step S313the evaluation value B is judged to be more than 80, step S312 isreached in which the judgment unit 395 outputs the judgment dataindicating the detection of the APS signal and terminates theprocessing.

[0464] If in step S313 the evaluation value B is not judged to be morethan 80, step S314 is reached. In step S314, the judgment unit 395judges whether the evaluation value A is more than 50 and the evaluationvalue B more than 60. If in step S314 the evaluation value A is judgedto be more than 50 and the evaluation value B more than 60, then stepS312 is reached. In step S312, the judgment unit 395 outputs thejudgment data indicating the detection of the APS signal and terminatesthe processing.

[0465] If in step S314 the evaluation value A is judged to be 50 or lessor if the evaluation value B is judged 60 or less, then step S315 isreached. In step S315, the judgment unit 395 judges whether theevaluation value A is more than 60 and the evaluation value B more than50. If in step S315 the evaluation value A is judged to be more than 60and the evaluation value B more than 50, then step S312 is reached inwhich the judgment unit 395 outputs the judgment data indicating thedetection of the APS signal and terminates the processing.

[0466] If in step S315 the evaluation value is judged to be 60 or lessor if the evaluation value B is judged 50 or less, then step S316 isreached. In step S316, the judgment unit 395 judges whether theevaluation value A is more than 40 and the evaluation value B more than70. If in step S316 the evaluation value A is judged to be more than 40and the evaluation value B more than 70, step S312 is reached. In stepS312, the judgment unit 395 outputs the judgment data indicating thedetection of the APS signal and terminates the processing.

[0467] If in step S316 the evaluation value A is judged to be 40 or lessor the evaluation value B 70 or less, step S317 is reached. In stepS317, the judgment unit 395 judges whether the evaluation value A ismore than 70 and the evaluation value B more than 40. If in step S317the evaluation value A is judged to be more than 70 and the evaluationvalue B more than 40, then step S312 is reached in which the judgmentunit 395 outputs the judgment data indicating the detection of the APSsignal and terminates the processing.

[0468] If in step S317 the evaluation value A is judged to be 70 or lessor the evaluation value B 40 or less, step S318 is reached. In stepS318, the judgment unit 395 outputs judgment data indicating the absenceof the APS signal and terminates the processing.

[0469] As described, the APS signal detection unit 354 detects the APSsignal in accordance with evaluation values based on two differentsignal detection methods. The scheme makes the APS signal detectionprocess more accurate than if the signal detection were carried outthrough the use of a single signal detection method.

[0470]FIG. 40 is a flowchart of steps constituting another judgingprocess performed by the APS signal detection unit 354 generating threeor more evaluation values based on three or more different APS signaldetection methods.

[0471] In step S321, the APS signal detection unit 354 judges whetherany one of the evaluation values involved is more than 80. If any oneevaluation value is judged to be more than 80, step S322 is reached. Instep S322, the APS signal detection unit 354 outputs judgment dataindicating the detection of the APS signal and terminates theprocessing.

[0472] If in step S321 any one evaluation value is not judged to be morethan 80, step S323 is reached. In step S323, the APS signal detectionunit 354 judges whether all evaluation values are more than 50 and oneof them is more than 60. If in step S323 all evaluation values arejudged to be more than 50 and one of them more than 60, step S322 isreached in which the APS signal detection unit 354 outputs the judgmentdata indicating the detection of the APS signal and terminates theprocessing.

[0473] If in step S323 any one evaluation value is judged to be 50 orless or if all evaluation values are judged 60 or less, then step S324is reached. In step S324, the APS signal detection unit 354 judgeswhether more than half of the evaluation values are more than 40 and oneof them more than 70. If in step S324 more than half of the evaluationvalues are judged to be more than 40 and one of them more than 70, thenstep S322 is reached in which the APS signal detection unit 354 outputsthe judgment data indicating the detection of the APS signal andterminates the processing.

[0474] If in step S324 more than half of the evaluation values arejudged to be 40 or less or all evaluation values are judged 70 or less,then step S325 is reached. In step S325, the APS signal detection unit354 outputs judgment data indicating the absence of the APS signal andterminates the processing.

[0475] As described, the APS signal detection unit 354 judges whetherthe APS signal is detected in accordance with three or more evaluationvalues based on three or more different APS signal detection methods.This scheme makes the APS signal detection process more accurate than ifthe signal detection were carried out through the use of two differentsignal detection methods.

[0476] The threshold values to be compared with evaluation values in thejudging steps in FIG. 39 or 40 are not limited to 80, 70, 60, 50 or 40as indicated in the flowchart. Alternatively, the threshold values maybe greater or smaller than the values given provided they are determinedin appropriate proportions relative to one another.

[0477] Any other suitable APS signal detection methods may be utilizedin generating evaluation values. This invention is not limited by suchsignal detection methods.

[0478] Below is a description of how the recording/reproducing program381 is booted when unattended recording of a reserved content isstarted.

[0479]FIG. 41 is a schematic view of a window displayed on the displayunit 330 of the personal computer by the unattended recordingreservation program 384. Clicking on a menu named “Set” in this windowcauses the unattended recording reservation program 384 to display thecommand for booting the recording/reproducing program upon recording.

[0480] When the command for booting the recording/reproducing programupon recording is checked, the unattended recording reservation program384 sets a boot flag of the reservation monitoring program 385 to avalue for booting the recording/reproducing program 381 upon starting ofunattended recording.

[0481] When the command for booting the recording/reproducing programupon recording is not checked, the unattended recording reservationprogram 384 sets the boot flag of the reservation monitoring program 385to a value for keeping the recording/reproducing program 381 fromgetting booted upon starting of recording.

[0482] If the command for booting the recording/reproducing program uponrecording is not checked as shown in FIG. 41, then the unattendedrecording reservation program 384 sets the boot flag of the reservationmonitoring program 385 to the value for keeping therecording/reproducing program 381 from getting booted upon starting ofrecording. In that case, the reservation monitoring program 385 does notboot the recording/reproducing program 381 when unattended recording isstarted.

[0483] If the command for booting the recording/reproducing program uponrecording is checked as indicated in FIG. 42, then the unattendedrecording reservation program 384 sets the boot flag of the reservationmonitoring program 385 to the value for booting therecording/reproducing program 381 upon starting of recording. In thatcase, the reservation monitoring program 385 boots therecording/reproducing program 381 if the program 381 is not in operationwhen unattended recording is started.

[0484]FIG. 43 is a flowchart of steps constituting an unattendedrecording starting process performed by the reservation monitoringprogram 385. In step S341, the reservation monitoring program 385 judgeswhether the date and time at which a content is reserved for unattendedrecording are reached on the basis of time data from an RTC, not shown.If the date and time for unattended recording are not judged to bereached, control is returned to step S341 and the judgment is repeateduntil the date and time in question are judged reached.

[0485] If in step S341 the date and time for unattended recording arejudged to be reached, the reservation monitoring program 385 goes tostep S342. In step S342, the reservation monitoring program 385 startsunattended recording of the reserved content.

[0486] In step S343, the reservation monitoring program 385 reads thevalue of the boot flag in order to determine whether or not to boot therecording/reproducing program 381. In step S344, the reservationmonitoring program 385 judges whether the setting is for booting therecording/reproducing program 381. If the set value is judged as one forbooting the recording/reproducing program 381, then step S345 isreached. In step S345, the reservation monitoring program 385 judgeswhether the recording/reproducing program 381 is already in operation.

[0487] If in step S345 the recording/reproducing program 381 is notjudged to be in operation, the reservation monitoring program 385 bootsthe recording/reproducing program 381 and terminates the processing.

[0488] If in step S345 the recording/reproducing program 381 is judgedto be already in operation, there is no need to boot it anew. In thatcase, the reservation monitoring program 385 skips step S346 andterminates the processing.

[0489] If in step S344 the reservation monitoring program 385 judges theset value to be one for keeping the recording/reproducing program 381from getting booted, there also is no need to boot up the program 381.In that case, the reservation monitoring program 385 skips steps S345and S346 and terminates the processing.

[0490] As described, where the boot flag is set to boot therecording/reproducing program 381, the reservation monitoring program385 allows the recording/reproducing program 381 to boot upautomatically. With the recording/reproducing program 381 booted up, theuser is able to know quickly whether unattended recording of a reservedTV program is being executed and what kind of program has been reservedfor unattended recording.

[0491] If a sound-only program such as an FM broadcast program has beenreserved for unattended recording and if the recording of such a programis started, the reservation monitoring program 385 may let therecording/reproducing program 381 boot up automatically and allow theprogram 381 to output only the sounds.

[0492] What follows is a description of how to switch between twosettings: one for displaying information about images and/or sounds onthe monitor 302, and the other for not displaying such information.

[0493] As shown in FIG. 44, the recording/reproducing program 381 run bythe personal computer 301 causes the image processing board 335 tosupply the monitor 302 with a composite video signal representing arecorded content or a currently received TV program. Based on thecomposite video signal coming from the personal computer 2, the monitor302 displays images representative of the content held in the personalcomputer 301 or the TV program being received by the personal computer301.

[0494] If the command for displaying information onto a video output ischecked in the “Set” menu displayed by the recording/reproducing program381, the recording/reproducing program 381 causes the image processingboard 335 to generate a composite video signal for displaying not onlyimages representing the recorded content or the currently received TVprogram but also information about the screen on the display unit 330and/or about the sounds being reproduced. The composite view signal thusgenerated is sent from the image processing board 335 to the monitor302.

[0495] As shown in FIG. 45, given the composite video signal from thepersonal computer 2, the monitor 302 displays not only imagesrepresenting the recorded content or the currently received TV programbut also information equivalent to that about the screen on the displayunit 330 and/or about the sounds being reproduced.

[0496] If the command for displaying information onto a video output isnot checked in the “Set” menu displayed by the recording/reproducingprogram 381, the recording/reproducing program 381 causes the imageprocessing board 335 to generate a composite video signal for displayingonly images representing the recorded content or the currently receivedTV program. The composite view signal thus generated is supplied fromthe image processing board 335 to the monitor 302.

[0497] As shown in FIG. 46, given the composite video signal from thepersonal computer 2, the monitor 302 displays only images representingthe recorded content from the personal computer 301 or the TV programcurrently received by the personal computer 301.

[0498] However, whether the command for displaying information onto avideo output is checked or not, the recording/reproducing program 381causes the display unit 330 of the personal computer 301 to displayinformation related to images or sounds.

[0499]FIG. 47 is a flowchart of steps constituting an informationdisplaying process carried out by the recording/reproducing program 381.In step S361, the recording/reproducing program 381 causes the displayunit 330 to display information related to images or sounds. In stepS362, the recording/reproducing program 381 acquires the setting of acomposite video signal based on the setting of the command fordisplaying information onto a video output.

[0500] In step S363, the recording/reproducing program 381 determineswhether or not to display the information related to images or sounds onthe display unit 330 that is an external monitor. If it is determined todisplay the information related to images or sounds, step S364 isreached. In step S364, the recording/reproducing program 381 suppliesthe image processing board 335 with data corresponding to theinformation related to images or sounds. The image processing board 335is then made to output a composite video signal for displaying not onlythe content or TV program but also the information related to images orsounds. This terminates the processing.

[0501] If in step S363 it is not determined to display the informationrelated to images or sounds, step S365 is reached. In step S365, therecording/reproducing program 381 causes the image processing board 335to output a composite video signal for displaying only the content or TVprogram. Then the processing is terminated.

[0502] As described, the recording/reproducing program 381 can switchbetween the two settings: on the one hand, with information about imagesor sounds displayed on the display unit 330, the content or TV programmay be displayed along with the image- or sound-related information onthe monitor 302 that is an external monitor. On the other hand, only thecontent or TV program may be displayed on the external monitor 302.

[0503] The scheme above allows the user to choose, without modifyingconnections between the devices configured, not to include theinformation related to images or sounds into the images being recordedbased on the distributed composite video signal from the personalcomputer 301 regardless of the user's operation on the personal computer301.

[0504] Described below is how sessions are switched with regard to aplurality of users on the personal computer 301.

[0505]FIG. 48 is an explanatory view of how sessions are typicallyswitched. An operating system 401 run by the CPU 321 of the personalcomputer 301 carries out such processes as execution of applicationprograms, users' log-in, and management of resources such as pieces ofhardware and programs of the personal computer 301.

[0506] When a first user logs in, the operating system 401 carries out asession A involving establishment of program settings (i.e., environmentsettings) corresponding to the user in question.

[0507] If a second user logs in with the first user still logging on,the operating system 401 carries out a session B involving establishmentof program settings corresponding to the second user.

[0508] Likewise, when another user logs in with a number of usersalready logging on, the operating system 401 carries out the nextsession (e.g., session N) involving establishment of program settingscorresponding to the newly logging user.

[0509] With a plurality of users logging in concurrently, one of themmay decide to use the personal computer 301. If that happens, theoperating system 401 switches sessions to execute the one correspondingto the user who is about to manipulate the personal computer 301.

[0510] The session-switching feature above is implemented illustrativelyas Fast User Switching by Windows (registered trademark) XP, anoperating system from Microsoft Corporation.

[0511] Described below with reference to FIGS. 49 through 52 is how theresources of the personal computer 301 are managed upon switching ofsessions according to the invention.

[0512]FIG. 49 is an explanatory view of a group that comprises modules411, 412, 413 and 414. Each of the modules 411 through 414 correspondsto a single resource such as a piece of hardware or software.

[0513] Illustratively, the module 411 may correspond to therecording/reproducing program 381, module 412 to the reservationmonitoring program 385, module 413 to the image processing board 335,and module 414 to the unattended recording reservation program 384.

[0514] Where the module 411 is being active in the session A as shown inFIG. 50, the modules 412, 413 and 414 are also allowed to be activatedor used in the same session A.

[0515] On the other hand, if the module 411 is active in the session A,the module 412 belonging to the same group as the module 411 is notallowed to be activated in the session B even if so requested. If themodule 412 is requested to be activated in the session B with the module411 already active in the session A, the module 412 prompts the displayunit 330 to display a dialog box warning that the module 412 cannot beactivated.

[0516]FIG. 53 is an explanatory view of the process of activating themodule 412 that belongs to group á, the same group as that of the module411. The module 411 belonging to the group á retains groupidentification data 421 identifying the group á. The module 412 thatalso belongs to the group á contains group identification data 422denoting the group á.

[0517] When the module 411 belonging to the group á is activated in thesession A, the module 411 submits the internally retained groupidentification data 421 to the operating system 401. Given the groupidentification data 421 from the module 411, the operating system 401accordingly generates executable module group identification data 423indicating correspondence between the session A and the group á.

[0518] When the module 412 is requested to be activated, the module 412in turn requests the executable module group identification data 423from the operating system 401.

[0519] In response to the request from the module 412, the operatingsystem 401 supplies the executable module group identification data 423to the module 412.

[0520] Based on the executable module group identification data 423 fedby the operating system 401, the module 412 judges whether any othermodule of the same group is being active or in use in another session.

[0521] If any other module of the same group is not judged to be activeor in use in any other session, the module 412 remains active. If someother module of the same group is judged to be active or in use in someother session, the module 412 stops being active.

[0522] Illustratively, it might happen that the module 411 of the samegroup á as that of the module 412 is judged being active or in use inthe session A. In that case, the module 412 is deactivated.

[0523]FIG. 54 is a flowchart of steps constituting a typical process ofactivating the module 412. In step S381, the module 412 acquiresexecutable module group identification data 423 from the operatingsystem 401.

[0524] In step S382, the module 412 judges whether any other module ofthe same group to which the module 412 belongs is being active in anyother session, based on the acquired executable module groupidentification data 423 as well as on the group identification data 422held in the module 412 itself. If any other module of the same group isnot judged to be active in any other session, step S383 is reached inwhich the activating process of the module 412 is continued.

[0525] In step S384, the module 412 supplies the operating system 401with the group identification data 422 indicating the group to which themodule 412 belongs, and the processing is terminated. Given the groupidentification data 422 from the module 412, the operating system 401accordingly generates executable module group identification data 423denoting correspondence between the session in which the module 412 isactive on the one hand, and the group to which the module 412 belongs onthe other hand. The identification data 423 thus generated is stored.

[0526] If in step S382 some other module of the same group to which themodule 412 belongs is judged to be active in some other session, thenstep S385 is reached. In step S385, the activating process of the module412 is stopped and the processing is terminated.

[0527] In the foregoing description, the module 412 was shown judgingwhether any other module of the same group was being active in any othersession and determining whether or not to continue the activatingprocess depending on the result of the judgment. Alternatively, theoperating system 401 may judge whether any other module of the samegroup to which the module 412 belongs is being active in any othersession and may determine whether or not to continue the activatingprocess of the module 412 in keeping with the judgment.

[0528]FIG. 55 is a flowchart of steps carried out by the operatingsystem 401 in reporting group identification data about an activemodule. In step S391, the operating system 401 judges whether the module412 is about to be activated. If the module is not judged about to beactivated, step S391 is reached again. The judgment of step S391 isrepeated until the module 412 is about to be activated.

[0529] If in step S391 the module 412 is judged about to be activated,step S392 is reached. In step S392, the operating system 401 suppliesexecutable module group identification data 423 to the module 412 thatis about to be activated.

[0530] In step S393, the operating system 401 judges whether groupidentification data 422 are fed from the module 412. If the groupidentification data 422 are judged to be fed, step S394 is reached. Instep S394, based on the group identification data 422, the operatingsystem 401 stores into the executable module group identification data423 the correspondence between the session in which the module 412 isactivated and the group to which the module 412 belongs. This terminatesthe processing.

[0531] If in step S393 the group identification data 422 are not judgedsupplied, that means the module 412 about to be activated does notbelong to the group in question or that the module 412 is deactivated.In that case, the operating system 401 does not store the correspondencebetween the session and the group associated with the module 412, andterminates the processing.

[0532] As described, the modules belonging to a given group areactivated only within a single session; they cannot be activated or usedacross a plurality of sessions. This ensures that while a plurality ofsessions are in progress, certain processes requiring specific resources(e.g., execution of unattended recording of reserved contents) arecarried out without conflict. Because modules are executed exclusivelyas a group in a given session, the processes involving a plurality ofmodules are performed reliably.

[0533] With this invention, the network 3 is not limited to a wirednetwork; it can also be a wireless network. The network system may beimplemented as a wireless LAN based illustratively on IEEE 802.11bcriteria involving radio waves over the 2.4 GHz band, or on IEEE 802.11acriteria over the 5 GHz band.

[0534] The content offering system according to the invention is notlimited to handling image and sound contents; it can obviously addresssound-only contents as well as such data as characters, computerprograms, and numerical data.

[0535] Although the personal computer 2 was described above as a clientbeing fed with contents, this is not limitative of the invention.Alternatively, the client may be not only the personal computer 2 butalso a terminal device such as a PDA (personal digital assistant) or aportable telephone, a stay-at-home VCR, a table-top DVD (DigitalVersatile Disc) recording apparatus, or a recorder/player such as a harddisc recorder.

[0536] The series of steps described above may be executed either byhardware or by software. For software-based processing to take place,programs constituting the software may be either incorporated beforehandin dedicated hardware or installed upon use from a suitable programstorage medium into a general-purpose personal computer or likeequipment capable of executing diverse functions.

[0537] As shown in FIGS. 2, 5 and 34, the storage medium is offered tousers apart from computers not only as a package medium constituted bythe magnetic disc 41, 121 or 341 (including floppy (registeredtrademark) discs); optical disc 42, 122 or 342 (including CD-ROM(compact disc-read only memory) and DVD (digital versatile disc));magneto-optical disc 43, 123 or 343 (including MD (Mini-disc)); orsemiconductor memory 44, 124 or 344; but also in the form of the ROM 22,102 or 322; or the hard disc drive 31, 111 or 331, each containing theprograms and incorporated beforehand in the computer.

[0538] The programs above are stored into the computer via interfacessuch as routers and modems and through wired or wireless communicationmedia such as local area networks, the Internet, and digital satellitebroadcasting networks.

[0539] In this specification, the steps which are stored on a programstorage medium and which describe the programs to be executed representnot only the processes that are carried out in the depicted sequence(i.e., on a time series basis) but also processes that are conductedparallelly or individually.

[0540] In this specification, the term “system” refers to an entireconfiguration made up of a plurality of component devices.

[0541] As many apparently different embodiments of this invention may bemade without departing from the spirit and scope thereof, it is to beunderstood that the invention is not limited to the specific embodimentsthereof except as defined in the appended claims.

What is claimed is:
 1. An information providing system constituted of aninformation providing apparatus for providing image data and sound dataover a network and of a first and a second information processingapparatus for displaying images and outputting sounds based on theprovided image data and sound data; wherein said information providingapparatus comprises: first reception controlling means for controllingreception of a connection request from said first information processingapparatus; judging means which, upon receipt of said connection request,judges whether said information providing apparatus is providing any ofsaid image data and sound data to said second information processingapparatus; and first transmission controlling means which, if saidinformation providing apparatus is judged to be providing any of saidimage data and sound data to said second information processingapparatus, then controls transmission of information related to a chatprogram to said first and said second information processing apparatus;wherein said first information processing apparatus comprises: secondtransmission controlling means for controlling transmission of saidconnection request to said information providing apparatus; secondreception controlling means for controlling reception of saidinformation related to said chat program from said information providingapparatus; and first executing means which, upon reception of saidinformation related to said chat program, executes a process based onthe received information related to said chat program; and wherein saidsecond information processing apparatus comprises: third receptioncontrolling means for controlling reception of said information relatedto said chat program from said information providing apparatus; andsecond executing means which, upon receipt of said information relatedto said chat program, executes a process based on the receivedinformation related to said chat program.
 2. An information providingsystem according to claim 1, wherein said information providingapparatus further comprises third transmission controlling means forcontrolling transmission of the same of said image data and said sounddata to said first and said second information processing apparatus. 3.An information providing system according to claim 1, wherein said firsttransmission controlling means controls transmission of said informationrelated to said chat program as a chat program boot-up request; whereinsaid first executing means boots said chat program upon receipt of saidinformation related to said chat program; and wherein said secondexecuting means boots said chat program upon receipt of said informationrelated to said chat program.
 4. An information providing apparatus forproviding image data and sound data over a network to a first and asecond information processing apparatus displaying images and outputtingsounds based on the provided image data and sound data, said informationproviding apparatus comprising: reception controlling means forcontrolling reception of a connection request from said firstinformation processing apparatus; judging means which, upon receipt ofsaid connection request, judges whether said information providingapparatus is providing any of said image data and sound data to saidsecond information processing apparatus; and first transmissioncontrolling means which, if said information providing apparatus isjudged to be providing any of said image data and sound data to saidsecond information processing apparatus, then controls transmission ofinformation related to a chat program to said first and said secondinformation processing apparatus.
 5. An information providing apparatusaccording to claim 4, further comprising second transmission controllingmeans for controlling transmission of the same of said image data andsaid sound data to said first and said second information processingapparatus.
 6. An information providing apparatus according to claim 4,wherein said first transmission controlling means controls transmissionof said information related to said chat program as a chat programboot-up request.
 7. An information providing method for use with aninformation providing apparatus for providing image data and sound dataover a network to a first and a second information processing apparatusdisplaying images and outputting sounds based on the provided image dataand sound data, said information providing method comprising the stepsof: controlling reception of a connection request from said firstinformation processing apparatus; upon receipt of said connectionrequest, judging whether said information providing apparatus isproviding any of said image data and said sound data to said secondinformation processing apparatus; and if said information providingapparatus is judged to be providing any of said image data and saidsound data to said second information processing apparatus, thencontrolling transmission of information related to a chat program tosaid first and said second information processing apparatus.
 8. Aprogram for use with a computer which controls an information providingapparatus for providing image data and sound data over a network to afirst and a second information processing apparatus displaying imagesand outputting sounds based on the provided image data and sound data,said program causing said computer to execute the steps of: controllingreception of a connection request from said first information processingapparatus; upon receipt of said connection request, judging whether saidinformation providing apparatus is providing any of said image data andsaid sound data to said second information processing apparatus; and ifsaid information providing apparatus is judged to be providing any ofsaid image data and said sound data to said second informationprocessing apparatus, then controlling transmission of informationrelated to a chat program to said first and said second informationprocessing apparatus.
 9. An information processing apparatus fordisplaying images and outputting sounds based on image data and sounddata provided by an information providing apparatus over a network, saidinformation processing apparatus comprising: reception controlling meansfor controlling reception of information related to a chat program fromsaid information providing apparatus; and executing means which, uponreception of said information related to said chat program, executes aprocess based on the received information related to said chat program.10. An information processing apparatus according to claim 9, wherein,upon receipt of said information related to said chat program, saidexecuting means boots said chat program.
 11. An information processingmethod for use with an information processing apparatus for displayingimages and outputting sounds based on image data and sound data providedby an information providing apparatus over a network, said informationprocessing method comprising the step of: controlling reception ofinformation related to a chat program from said information providingapparatus; and upon reception of said information related to said chatprogram, executing a process based on the received information relatedto said chat program.
 12. A program for use with a computer whichcontrols an information processing apparatus for displaying images andoutputting sounds based on image data and sound data provided by aninformation providing apparatus over a network, said program causingsaid computer to execute the step of: controlling reception ofinformation related to a chat program from said information providingapparatus; and upon reception of said information related to said chatprogram, executing a process based on the received information relatedto said chat program.
 13. An information providing system constituted ofan information providing apparatus and an information processingapparatus; wherein said information providing apparatus comprises: firstreception controlling means for controlling reception of a request fromsaid information processing apparatus for a version report regarding aprogram being executed by said information providing apparatus; andfirst transmission controlling means which, upon receipt of the versionreport request, controls transmission of version data denoting theversion of said program to said information processing apparatus; andwherein said information processing apparatus comprises: secondtransmission controlling means for controlling transmission of saidversion report request to said information providing apparatus;recording controlling means for controlling recording of function datarepresenting correspondence between said version of said program andfunctions provided by said information providing apparatus; secondreception controlling means for controlling reception of said versiondata from said information providing apparatus; and determining meansfor determining the functions of said information providing apparatusbased on said function data and said version data.
 14. An informationproviding system according to claim 13, wherein said informationproviding apparatus further comprises third transmission controllingmeans for controlling transmission of moving image data to saidinformation processing apparatus; and wherein said informationprocessing apparatus further comprises third reception controlling meansfor controlling reception of said moving image data from saidinformation providing apparatus.
 15. An information providing apparatusfor providing data to an information processing apparatus, saidinformation providing apparatus comprising: reception controlling meansfor controlling reception of a request from said information processingapparatus for a version report regarding a program being executed bysaid information providing apparatus; and first transmission controllingmeans which, upon receipt of the version report request, controlstransmission of version data denoting the version of said program tosaid information processing apparatus.
 16. An information providingapparatus according to claim 15, further comprising second transmissioncontrolling means for controlling transmission of moving image data tosaid information processing apparatus.
 17. An information providingmethod for use with an information providing apparatus for providingdata to an information processing apparatus, said information providingmethod comprising the steps of: controlling reception of a request fromsaid information processing apparatus for a version report regarding aprogram being executed by said information providing apparatus; and uponreceipt of the version report request, controlling transmission ofversion data denoting the version of said program to said informationprocessing apparatus.
 18. A program for use with a computer whichcontrols an information providing apparatus for providing data to aninformation processing apparatus, said program causing said computer toexecute the steps of: controlling reception of a request from saidinformation processing apparatus for a version report regarding saidprogram; and upon receipt of the version report request, controllingtransmission of version data denoting the version of said program tosaid information processing apparatus.
 19. An information processingapparatus for processing data provided by an information providingapparatus, said information processing apparatus comprising:transmission controlling means for controlling transmission of a requestto said information providing apparatus for a version report regarding aprogram being executed by said information providing apparatus;recording controlling means for controlling recording of function datarepresenting correspondence between the version of said program andfunctions provided by said information providing apparatus; firstreception controlling means for controlling reception of version datafrom said information providing apparatus; and determining means fordetermining the functions of said information providing apparatus basedon said function data and said version data.
 20. An informationprocessing method for use with an information processing apparatus forprocessing data provided by an information providing apparatus, saidinformation processing method comprising the steps of: controllingtransmission of a request to said information providing apparatus for aversion report regarding a program being executed by said informationproviding apparatus; controlling recording of function data representingcorrespondence between the version of said program and functionsprovided by said information providing apparatus; controlling receptionof version data from said information providing apparatus; anddetermining the functions of said information providing apparatus basedon said function data and said version data.
 21. A program for use witha computer which controls an information processing apparatus forprocessing data provided by an information providing apparatus, saidprogram causing said computer to execute the steps of: controllingtransmission of a request to said information providing apparatus for aversion report regarding a program being executed by said informationproviding apparatus; controlling recording of function data representingcorrespondence between the version of said program and functionsprovided by said information providing apparatus; controlling receptionof version data from said information providing apparatus; anddetermining the functions of said information providing apparatus basedon said function data and said version data.